我的印象是,如果我包括这条线
#!/bin/bash
Run Code Online (Sandbox Code Playgroud)
在我的文件的开头,它会被识别为一个我可以运行的 bash 脚本
file.sh
Run Code Online (Sandbox Code Playgroud)
代替
sh file.sh
Run Code Online (Sandbox Code Playgroud)
但在我的情况下,file.sh给出类似test.sh给出的东西test.sh: command not found。这是为什么?
更新
我注意到我需要使用./. 但我认为它会在当前目录中查找?
./test.sh
Run Code Online (Sandbox Code Playgroud)
fra*_*ous 13
首先,您需要确保文件是可执行的:
chmod +x file.sh
然后要运行它,您要么需要将它放在 PATH 中,即操作系统在查找要运行的文件时搜索的文件目录之一,您可以使用 找到它echo $PATH,否则您需要输入:
./file.sh
而不仅仅是键入file.sh.
你可以输入file.sh,如果它在你的 PATH 中,这是我推荐的。一个好地方在~/bin。如果该文件夹不存在,请创建该文件夹,在 Ubuntu 下,它会在您登录时添加到您的路径中。
您需要使用 ./file.sh 启动它,因为当前目录不在 PATH 中。
如果这还不够,becaused你错过了,frabjous暗示什么,chmod a+x你应该开始一个家当开始计划#!/bin/bash用
bash file.sh
Run Code Online (Sandbox Code Playgroud)
不是
sh file.sh
Run Code Online (Sandbox Code Playgroud)
即使 sh 是 /bin/bash 的符号链接。
shell 检查它是如何被调用的,并且可以被调用为sh以兼容模式运行,因此它可能无法处理一些 bashisms,如果作为bash file.sh.
那不是你的问题,但如果你不知道这些微妙的区别,可能会成为一个问题。
| 归档时间: |
|
| 查看次数: |
10593 次 |
| 最近记录: |