使用'sh'和'source'(以及'.')执行shell脚本的区别
使用'sh'和'source'(以及'.')执行shell脚本的区别
这个问题已经有了答案:
我有一个小问题。
当我用\'sh\'执行我的shell文件时,它的工作方式不同。
(它打印了“-e”)
谷歌说“检查你的第一行(#!/bin/bash)和\'env | grep sh\'”
但我眼里没有什么不同......
你能告诉我为什么吗?
+++
我尝试将“#/bin/bash”更改为“#/bin/dash”,但没有任何变化。
谢谢阅读..
[我的第一段代码(first.sh)]-bash
#!/bin/bash echo -e "hi"
[运行脚本和结果]
# . first.sh Hi # source first.sh Hi
# sh first.sh -e hi
[我的第二段代码(second.sh)]-dash
#!/bin/dash echo -e "hi"
[运行脚本和结果]
没有变化......
[操作系统]
Ubuntu 18.04
[环境]
# env | grep sh SHELL=/bin/bash
# ll /bin | grep sh -rwxr-xr-x 1 root root 1113504 6월 6 2019 bash* -rwxr-xr-x 1 root root 121432 1월 25 2018 dash* lrwxrwxrwx 1 root root 4 6월 6 2019 rbash -> bash* lrwxrwxrwx 1 root root 4 7월 18 2019 sh -> dash* lrwxrwxrwx 1 root root 4 7월 18 2019 sh.distrib -> dash*
admin 更改状态以发布 2023年5月24日