Shell腳本執行

Shell腳本執行

我有兩個具有完全相同權限的 shell 腳本檔案等。是什麼原因?

答案1

很可能這兩個腳本位於不同的目錄中。其中一個目錄位於 PATH 中,而另一個則不在 PATH 中。

您可以使用該type指令來測試目前 shell 的 $PATH 中是否存在檔案。

$ type start_dropbox.bash
start_dropbox.bash is /home/saml/bin/start_dropbox.bash

請參閱此 U&L 問答“如何測試 $PATH 中是否存在應用程式?”以獲得更全面的報道。

答案2

如果您只是給出腳本的名稱並且它可以工作,那麼您可以將它放在 /usr/bin/ /usr/sbin 或其他位置。這完全取決於您的路徑設定。

做這個:

1. echo $PATH

如果您的腳本位於這些目錄中的任何一個中,它將在不使用絕對路徑的情況下運行。

2. whereis "scripts name"

Whereis 或「which」會告訴您它所在的位置。您甚至可能授予了一個文件執行權限,而沒有授予另一個文件。對於不只使用名稱運行的程序,請執行 chmod u+x

  1. 如果是 python 腳本,則可能需要添加 #!/usr/bin/env python;如果是 bash,則可能需要添加 #!/usr/bin/env bash 等等。

相關內容