私たちは:
- ユーザーニコ。
いくつかのbashスクリプトを含むフォルダ
/home/nico/script_home
:main.sh
subscripta.sh
sqlscripta.sh
ルートとCDで接続します
/home/nico/script_home/
- ついに我々は走る
./main.sh
結果は次のとおりです。
subscripta.sh
- そのファイルやディレクトリはありません。- 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"
答え1
努力するsu - nico -c "/home/nico/script_home/subscripta.sh"
答え2
これをしないでくださいsu -
。これにより、HOMEをユーザーIDのホームディレクトリに設定するなど、ユーザーIDへのフルログインが行われます。
努力するsu nico -c "./script.sh"
また、script.shが実行可能としてマークされていることを確認してください。