bash 與 ./ 執行 script 差異 - Linux
By Agatha
at 2021-10-16T23:29
at 2021-10-16T23:29
Table of Contents
※ 引述《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/ & <[email protected]>
--
: 想請問我寫了一個 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/ & <[email protected]>
--
Tags:
Linux
All Comments
By Selena
at 2021-10-17T22:54
at 2021-10-17T22:54
By Rosalind
at 2021-10-18T22:19
at 2021-10-18T22:19
By Zenobia
at 2021-10-19T21:44
at 2021-10-19T21:44
By Skylar Davis
at 2021-10-20T21:09
at 2021-10-20T21:09
By Ethan
at 2021-10-21T20:34
at 2021-10-21T20:34
By Olivia
at 2021-10-22T19:59
at 2021-10-22T19:59
By Isabella
at 2021-10-23T19:24
at 2021-10-23T19:24
By Tristan Cohan
at 2021-10-24T18:50
at 2021-10-24T18:50
By Selena
at 2021-10-25T18:15
at 2021-10-25T18:15
By John
at 2021-10-26T17:40
at 2021-10-26T17:40
By Kelly
at 2021-10-27T17:05
at 2021-10-27T17:05
By Callum
at 2021-10-28T16:30
at 2021-10-28T16:30
Related Posts
bash 與 ./ 執行 script 差異
By Ula
at 2021-10-15T21:23
at 2021-10-15T21:23
有多少人用PipeWire配上高等設備聽歌?
By Tom
at 2021-10-15T20:56
at 2021-10-15T20:56
無法使用ssh-copy-id root@IP
By Hedda
at 2021-10-15T07:42
at 2021-10-15T07:42
ArchLinux 自動模組載入
By Poppy
at 2021-10-14T19:30
at 2021-10-14T19:30
Apple iTunes
By Victoria
at 2021-10-12T10:38
at 2021-10-12T10:38