对于 sysfs 中的文件,我尝试使用
echo 45>target_size
Run Code Online (Sandbox Code Playgroud)
将该值设置为 45。此操作失败,输入无效。但是,如果我这样做:
x=45;echo $x>target_size
Run Code Online (Sandbox Code Playgroud)
它工作正常。此外,如果我使用一个非常大的数字,它会给我一个关于文件编号无效的错误。显然,当您回显一个直数时,终端会将其解释为文件描述符,而不是文字数字。回显数字的正确方法是什么?
ste*_*ver 20
我认为这是 shell 如何解析您的命令的问题。当你做
echo 45>target_size
Run Code Online (Sandbox Code Playgroud)
shell 将文件描述符重定向45
到文件target_size
,然后echo
不带参数执行。
如果你这样做
echo 45 >target_size
Run Code Online (Sandbox Code Playgroud)
它将标准输出描述符重定向到文件target_size
,然后执行echo 45
.
TL;DR 在重定向运算符之前添加空格。