sha*_*ant 3 command-line shell shell-script
我看到人们通过键入./scriptname. 现在这似乎是默认方式,因为我经常看到它,但偶尔但并不罕见,我看到它们键入sh scriptname. 这只是偏好问题还是./和sh之间有更显着的区别?
Ste*_*itt 11
有一些区别。
./scriptname
Run Code Online (Sandbox Code Playgroud)
要求被调用的文件scriptname是可执行的,并且它使用指定的外壳作为其第一行(在“shebang”中,例如 #!/bin/sh),如果有的话。
sh scriptname
Run Code Online (Sandbox Code Playgroud)
只要被调用的文件scriptname是可读的,它就可以工作,并且sh无论脚本的shebang指定什么,它都会使用(无论是什么)。对于某些 shell,如果scriptname当前目录中不存在,PATH则将搜索 中指定的目录,并scriptname改为读取和解释在那里找到的第一个目录(如果有)。
换一种方式,
sh scriptname
Run Code Online (Sandbox Code Playgroud)
无需设置即可工作,但您可能使用了错误的 shell,并且您可能运行了错误的脚本。
./scriptname
Run Code Online (Sandbox Code Playgroud)
将尝试使用正确的 shell(或者至少是脚本作者指定的 shell,如果有的话)运行正确的脚本,但它可能需要先进行一些设置 ( chmod a+x scriptname)。
| 归档时间: |
|
| 查看次数: |
4725 次 |
| 最近记录: |