目的
特定のコマンドだけ別ユーザで実行する。
プロジェクトで規定されてる、シェルの実行ユーザだとoracle周りのコマンドを叩く権限がないので何とかしたい。
例
# シェルの実行ユーザで実行される
touch start.txt
# ここだけoracleユーザで実行する
su - oracle -c sqlplus ***/***@*** @***.sql
# シェルの実行ユーザで実行される
touch end.txt
所感
-c オプションってこういう風に使うのか。
man su見ても、この説明からこんな挙動をするとは思えないよねぇ。
-c command, --command=command
対話的なシェルを起動するのではなく、シェルに -c オプションとともに command (実行されるコマンドライン一行) を渡す。
ところで、qiitaのタグで「shell」と「ShellScript」と「shellスクリプト」でタグ分かれてるの何とかならんのかしら。