linux ./a.sh 命令 与sh a.sh的区别是什么

linux ./a.sh 命令 与sh a.sh的区别是什么,
为什么有的时候./a.sh 可以执行 但是 sh a.sh执行会报错?

linux ./a.sh 命令 与sh a.sh的区别为:可执行属性不同、执行方式不同、兼容性不同。

一、可执行属性不同

1、 ./a.sh 命令: ./a.sh 命令的文件必须具有可执行属性。

2、sh a.sh命令:sh a.sh命令的文件不必具有可执行属性。

二、执行方式不同

1、./a.sh 命令:./a.sh 命令使用脚本中第一行所指定的命令来解释和执行文件。

2、sh a.sh命令:sh a.sh命令使用shell工具的SH脚本直接解释和执行文件。

三、兼容性不同

1、 ./a.sh 命令: ./a.sh 命令的兼容性比sh a.sh命令更好,不受限于shell工具。

2、sh a.sh命令:sh a.sh命令的兼容性比 ./a.sh 命令更差,受限于shell工具。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2015-01-14
./a.sh表示执行当前目录下a.sh这个脚本;而sh a.sh不符合命令格式规定,所以会报错。

比如a.sh在/home目录下,那么执行该脚本有两种方式:
1、 先转到home目录下(cd home)再执行该脚本(./a.sh)。
2、 用绝对路径,就可以直接输入(/home/a.sh)

PS:括号中是命令。
第2个回答  推荐于2017-10-07
./a.sh会用你脚本中第一行的那个#!XXX的shell来执行语句
而sh a.sh则是用sh来执行语句
还有一种可能就是./a.sh确定了文件路径,而sh a.sh一定要在a.sh所在目录本回答被提问者和网友采纳
第3个回答  2015-01-14
linux ./a.sh 命令 兼容性比 sh a.sh命令好
相似回答