$2: 没有那个文件或目录
$2: No such file or directory
我的代码是:
#!/bin/bash
if [ -gt ];then
echo >
fi
if [ -eq ];then
echo =
fi
if [ -lt ];then
echo <
fi
通过 ./script.sh 3 56
执行脚本时,我得到的响应是
./script.sh: line 9: 56: No such file or directory
。
我有执行脚本的权限。我是 bash 编程和使用 linux 的新手。请告诉我如何修复我的脚本。
echo <
是一种重定向,它会导致 echo
从名称在 </code> 中的文件中读取其输入。由于名为 <code>56
的文件不存在,因此您会收到错误消息。要解决此问题,请引用要打印的字符串:
echo " < "
编辑 欢迎来到 bash 的世界!在您学习的过程中,我建议在变量的所有使用中使用 double-quotes。这将使您预先省去一些麻烦,并且您可以在以后了解不使用引号的情况。参见,例如,this discussion at the bash-hackers wiki。快乐黑客!
Bash 使用 >
将标准输出流重定向到文件(而不是在终端中输出)。同样,它使用 <
从文件中获取标准输入,而不是从您键入(或管道)到终端的内容。
使用引号避免这种特殊处理。变量替换也在双引号字符串上执行,因此您可以将整个输出作为单个参数传递给 echo
,如 :
echo " < "
或者您可以传递 3 个参数:
echo "<"
# or
echo '<'
在single-quoted个字符串中,没有进行变量替换,所以
echo ' < '
不会按预期工作,而是直接输出
<
没有用变量的内容替换变量名。
我的代码是:
#!/bin/bash
if [ -gt ];then
echo >
fi
if [ -eq ];then
echo =
fi
if [ -lt ];then
echo <
fi
通过 ./script.sh 3 56
执行脚本时,我得到的响应是
./script.sh: line 9: 56: No such file or directory
。
我有执行脚本的权限。我是 bash 编程和使用 linux 的新手。请告诉我如何修复我的脚本。
echo <
是一种重定向,它会导致 echo
从名称在 </code> 中的文件中读取其输入。由于名为 <code>56
的文件不存在,因此您会收到错误消息。要解决此问题,请引用要打印的字符串:
echo " < "
编辑 欢迎来到 bash 的世界!在您学习的过程中,我建议在变量的所有使用中使用 double-quotes。这将使您预先省去一些麻烦,并且您可以在以后了解不使用引号的情况。参见,例如,this discussion at the bash-hackers wiki。快乐黑客!
Bash 使用 >
将标准输出流重定向到文件(而不是在终端中输出)。同样,它使用 <
从文件中获取标准输入,而不是从您键入(或管道)到终端的内容。
使用引号避免这种特殊处理。变量替换也在双引号字符串上执行,因此您可以将整个输出作为单个参数传递给 echo
,如
echo " < "
或者您可以传递 3 个参数:
echo "<"
# or
echo '<'
在single-quoted个字符串中,没有进行变量替换,所以
echo ' < '
不会按预期工作,而是直接输出
<
没有用变量的内容替换变量名。