请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

shell脚本文件不加执行权限,直接使用". test.sh"(中间有空格)也能运行

我没有将test.sh加上执行权限(没有+x),然后终端执行如下

. test.sh  //中间有个空格

好像也能执行。

有什么区别,养成这样的习惯会不会有啥问题?

正在回答

1回答

这样执行也是可以的。

实际上,Shell 的执行有多种方法。


1. 将 Shell 脚本作为程序运行:

需要使用 chmod 命令给 Shell 脚本加上执行权限。通过这种方式运行脚本,脚本文件第一行的 #!/bin/bash 一定要写对,好让系统查找到正确的解释器。

执行的方式是:

./test.sh


2. 将 Shell 脚本作为参数传递给 Bash 等解释器:

通过这种方式运行脚本,不需要在脚本文件的第一行指定解释器信息,写了也没用。所以不用 chmod 来给文件添加可执行权限,也可以执行。

执行的方式是:

bash test.sh


3. 用 source 命令来执行 Shell 脚本文件:

source 是 Shell 内置命令的一种,它会读取脚本文件中的代码,并依次执行所有语句。你也可以理解为,source 命令会强制执行脚本文件中的全部命令,而忽略脚本文件的权限。所以不用 chmod 来给文件添加可执行权限,也可以执行。

执行的方式是:

source test.sh

也可以简写为:

. test.sh

上面两种写法的效果相同。对于第二种写法,注意点号(.)和文件名中间有一个空格。

你可以用

man source

来查看 source 命令的手册。

//img1.sycdn.imooc.com//szimg/5e6993e009c5a18d25041186.jpg


一般我们还是会给 Shell 文件加上可执行权限,方便用所有的方式来执行。

2 回复 有任何疑惑可以回复我~
  • 提问者 慕少7118645 #1
    你的身影如此之帅~
    回复 有任何疑惑可以回复我~ 2020-03-12 09:51:17
  • Oscar 回复 提问者 慕少7118645 #2
    独帅帅不如大家一起帅~
    回复 有任何疑惑可以回复我~ 2020-03-12 10:24:14
问题已解决,确定采纳
还有疑问,暂不采纳
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号