echo -e '#!/bin/bash\nsleep 10' > time_test.sh && chmod +x time_test.sh && time time_test.sh
time_test.sh: No such file or directory
real 0m0.186s
user 0m0.105s
sys 0m0.074s
我肯定错过了什么..?
编辑:我错过了该错误,部分原因是我忽略了非示例脚本中的错误(现在已添加)。其寓意似乎是,以某种方式运行脚本的命令需要它的位置,而其他内置命令则cat
不需要。所以,也许更好的问题是,哪些命令需要位置的正确定义,或者我想只是尝试和错误,如果出现错误则无法找到脚本,以添加./
或路径信息..我假设任何失败而没有被标记为可执行的。我想知道人们使用哪些其他常见命令遇到这种情况。
答案1
这已经在评论中得到了回答,但我会在这里回答,因为你似乎错过了。
当您运行命令时,它会在变量中列出的目录中搜索命令文件$PATH
(除非该命令是别名或 shell 函数)。这通常不包括当前工作目录(这与 MS-Windows 不同),因为这会导致安全问题,例如创建一个名为ls
.
time ./time_test.sh
解决方案:使用not with运行脚本time time_test.sh
。 (注意:文件不应以 结尾.sh
,这是不好的形式,并且会泄漏实现细节。)