ubuntu中bash,sh,./,bash区别

本文介绍了使用不同方式执行Shell脚本的区别,包括shtest.sh、bashtest.sh、./test.sh与source方法的不同之处。重点讲解了这些执行方式如何影响当前shell环境,以及在何种情况下需要使用source命令。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

当我们使用 sh test.sh 、bash test.sh 、 ./test.sh
运行脚本都会使用一个新的shell环境来执行脚本内的命令,
当子进程完成后,子进程内的各项变量和操作将会结束而不会传回到父进程中。

source方法执行脚本是在父进程中执行的,test.sh的各项操作都会在原本的shell内生效。
不注销系统而要让某些写入~/.bashrc的设置生效时,需要使用 source ~/.bashrc 而不能使用 bash ~/.bashrc

./test.sh 来执行脚本,该方式与 bash test.sh 是一样的 ,默认使用 bin/bash 来执行我们的脚本。
只有该种执行方式需要对文件添加执行权限,其他方式并不需要。

sh、bash、dash三者有些许差别,对于部分关键字如 let,bash支持,而sh和dash并不支持,对于部分关键字则选择使用bash。
这三者的file文件可以无"执行权限"

简单来看
source与另4个最大区别为:是否影响当前shell
./xx和另3个,区别在是否文件需要执行权限
另外3个其实差不多,实际使用可能体会不到,或者不需要关注

参考:
https://blog.youkuaiyun.com/u012336923/article/details/50474692
https://www.jb51.net/os/Ubuntu/56385.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值