Re: [問題] bash 與 ./ 執行 script 差異
※ 引述《scitamehtam (scitamehtam)》之銘言:
: 想請問我寫了一個 shell script
: 然後用 bash 去執行
: 跟用 ./ 去執行
: 在系統上是否有差異呢?
: 謝謝!
推文有人提到 shebang 了,這邊在等 D2R 順便加減賺一下 P 幣...
首先是 bash ooxx.sh 的方式,這是強制用 bash 跑,第一行的 #!/bin/bash 或是
#!/bin/sh 會被當成註解,裡面剩下的行數會當作 bash 指令來跑。
舉例來說,弄一個 test.sh,裡面加上 bash -x (把執行的指令列出來):
gslin@home [/tmp] [23:06/W7] cat test.sh
#!/bin/bash -x
echo $0
用 bash test.sh 跑會出現:
gslin@home [/tmp] [23:06/W7] bash test.sh
test.sh
但你直接跑他則會吃 #!/bin/bash -x 這邊的參數:
gslin@home [/tmp] [23:07/W7] ./test.sh
+ echo ./test.sh
./test.sh
在維基百科有說明什麼是 shebang (也就是第一行的 #!):
https://zh.wikipedia.org/wiki/Shebang
https://en.wikipedia.org/wiki/Shebang_(Unix)
另外 shebang 也有一些限制,像是大多數支援 shebang 的作業系統下,#! 那行不
能超過 127 chars:
https://stackoverflow.com/questions/10813538/shebang-line-limit-in-bash-and-linux-kernel
直接在 command line 下用 bash 跑的話,可以塞的參數就大多了。
--
Resistance is futile.
https://blog.gslin.org/ & <gslin@gslin.org>
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 114.34.121.114 (臺灣)
※ 文章網址: https://www.ptt.cc/bbs/Linux/M.1634398189.A.1FE.html
推
10/17 11:46,
3年前
, 1F
10/17 11:46, 1F
→
10/17 11:47,
3年前
, 2F
10/17 11:47, 2F
推
10/17 12:52,
3年前
, 3F
10/17 12:52, 3F
→
10/17 12:52,
3年前
, 4F
10/17 12:52, 4F
推
10/17 17:15,
3年前
, 5F
10/17 17:15, 5F
推
10/17 20:31,
3年前
, 6F
10/17 20:31, 6F
推
10/17 20:58,
3年前
, 7F
10/17 20:58, 7F
→
10/17 22:16,
3年前
, 8F
10/17 22:16, 8F
→
10/17 22:16,
3年前
, 9F
10/17 22:16, 9F
推
10/17 22:21,
3年前
, 10F
10/17 22:21, 10F
→
10/17 22:30,
3年前
, 11F
10/17 22:30, 11F
→
10/17 23:01,
3年前
, 12F
10/17 23:01, 12F
→
10/17 23:02,
3年前
, 13F
10/17 23:02, 13F
→
10/17 23:07,
3年前
, 14F
10/17 23:07, 14F
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 2 之 2 篇):
Linux 近期熱門文章
23
129
PTT數位生活區 即時熱門文章