[问题] bash 与 ./ 执行 script 差异

楼主: scitamehtam (scitamehtam)   2021-10-15 21:23:40
想请问我写了一个 shell script
然后用 bash 去执行
跟用 ./ 去执行
在系统上是否有差异呢?
谢谢!
作者: LinBuoRen (林博仁)   2021-10-15 22:00:00
查一下 shebang 跟 Bash 的 POSIX sh 相容模式
作者: final01 (牛顿运动定律)   2021-10-16 13:24:00
基本没差..
作者: tomsawyer (安安)   2021-10-16 19:09:00
不是第一行写什么就用什么执行吗
作者: Bencrie   2021-10-16 19:16:00
./ 这个看第一行 #!/path/to/interpreter
楼主: scitamehtam (scitamehtam)   2021-10-16 20:41:00
那用bash 执行的话,script第一行写别的,这样优先级不知道怎么决定 哈哈
作者: idisnothing   2021-10-16 20:43:00
你可以试试看 我猜还是bash
作者: rickieyang (Rickie Yang)   2021-10-16 21:16:00
Fork bash 去执行 script, script 第一行写别的.bash 会再 fork 第一行写的往下执行吧
作者: Bencrie   2021-10-16 21:32:00
没有,就是 bash 执行
作者: idisnothing   2021-10-16 21:36:00
我刚试了一下 bash会直接忽略第一行的内容 直接往下执行 tcsh会fork出第一行#!的shell再往下执行https://imgur.com/WEilM8A
作者: kdjf (我抓得到什么呢?)   2021-10-17 00:13:00
建议用语法不同的指令测试 (像是for)。我不确定tcsh怎么处理SHELL这个环境变量
作者: idisnothing   2021-10-17 00:29:00
被楼上说中了 结果tcsh也是忽略#!那一行直接往下执行虽然SHELL变量内容为/bin/bash 但实际上是tcsh在执行指令 https://imgur.com/oYVNe4x看了一下pstree tcsh确实忽略#!那一行没错
作者: cole945 (跶跶..)   2021-10-21 10:02:00
因为#就是注解啊...你会说 /* 我觉得gcc忽略我的注解 */ 吗

Links booklink

Contact Us: admin [ a t ] ucptt.com