Bash

su - username -c ‘./script.sh’ -> 沒有這樣的文件或目錄

  • September 8, 2016

我們有:

  1. 使用者 nico。

  2. /home/nico/script_home包含一些 bash 腳本的文件夾:

  3. main.sh

  4. subscripta.sh

  5. sqlscripta.sh

  6. 我們以 root 和 cd 身份連接/home/nico/script_home/

  7. 最後我們執行./main.sh

結果我們得到:

  1. subscripta.sh- 無此文件或目錄
  2. sql腳本工作正常

我注意到su - nico -c "pwd"返回/home/nico/ 所以我嘗試更改main.sh./script_home/subscripta.sh但無濟於事。

使用 su - 執行腳本時避免沒有此類文件或目錄錯誤的正確語法是什麼?

#main.sh
su - nico -c "./subscripta.sh"
su - nico -c "sqlplus username/pass@some_oracle_db @script_home/sqlscripta.sql"

嘗試su - nico -c "/home/nico/script_home/subscripta.sh"

不要這樣做su -- 對使用者 ID 進行總登錄,包括將 HOME 設置為任何使用者 ID 的主目錄。

嘗試su nico -c "./script.sh"

此外,確保 script.sh 被標記為可執行。

引用自:https://unix.stackexchange.com/questions/27057