sh 脚本名字和./脚本名字有什么区别????

如题所述

sh xxx
用 sh 这个shell (sh一般指系统默认shell,比如 bash, ksh, Csh 等都有可能) 来解释和运行 xxx 这个脚本。xxx 文件不必具有可执行属性(chmod +x)

./xxx xxx必须具备可执行属性,如果此时的 xxx 是一个文本文件(脚本),那么按照 xxx 的第一行所指定的命令来解释和执行 xxx, 如果xxx 文件中没有指定,默认按照 /bin/sh 来解释和执行。 xxx 需要在第一行用
#!/path/to/mmm
的方法来说明要用 mmm 命令来解释和执行 自身。
比如如果是 bash 脚本,为 #!/bin/bash
perl脚本, #!/usr/bin/perl
python脚本, #!/usr/bin/python

等等。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2011-07-13
sh命令是shell的意思,用这个命令执行脚本系统会产生一个子进程(pid 与父进程也不一样),在这个子进程定义的变量,在脚本执行完后,子进程结束后无法带至父进程。
用.命令与source命令是一样的意思,就是本进程(不产生子进程)直接去执行脚本,如果脚本里有定义或者改变变量值,那这个变量值在程序结束后依然有效(同一个进程嘛)。
相似回答