Linux的常用命令

The differences between sh, source and ./ :

source foo.sh ( . foo.sh):

  • read and execute commands from filename in the current shell environment and return the exit status of the last command executed from filename (so attributes and environment of the current shell could be changed)
  • it's just like when you copy and past line by line of your foo.sh file and press Enter after every line 

sh foo.sh:

  • run in a subshell, any changes that foo.sh makes to the shell enviroment would not persist after the process has ended
  • there is also no necessarity of a hashbang line in it. (直接运行解释器)

./foo.sh:

  • execute the file in the current directory 
  • the hashbang line would be detected, for example, the first line #!/bin/sh is equal to /bin/sh ./foo.sh
  • the file needs the permisson as it is supposed to be an executable: chmod +x ./foo.sh. (with sh, the file, as an argument for sh, does not need to have execute permission set on it)
  • 要写成 ./foo.sh,而不是 foo.sh;如果直接写 foo.sh,linux 会去 PATH 里寻找有没有叫 foo.sh 的,而只有 /bin, /sbin, /usr/bin,/usr/sbin 等在 PATH 里,你的当前目录通常不在 PATH 里,所以写成 foo.sh 会找不到命令,要用 ./foo.sh 告诉系统就在当前目录找。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值