[問題] 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