私は他のユーザーに代わっていくつかのパラメータ化されたコマンドを実行する必要があるルートとして実行される簡単なスクリプトを書いています。
たとえば、次の例では、「VER」変数から取得したバージョンを使用してディレクトリを作成したいのですが、いくら実行されません。VER変数値がVER変数値に渡されていませんコマンドが正しく実行されました(コマンドを引用符などで囲むなどの二重使用を試みました)。
VER='10.2.1'
su - other_user -c 'mkdir -p /home/other_user/$VER'
これを達成する方法についてのアイデアはありますか?
ベストアンサー1
実行されたコマンドに変数を渡すことは、su -c
変数をスクリプトに渡すのと同じです。sh -c
bash -c
su other_user -c 'mkdir -p "/home/other_user/$1"' sh "$VER"
これら2つのパラメータとsh
は、それぞれ(エラーメッセージでシェルが使用する)とで始まるシェルに渡されます"$VER"
。su
$0
$1
関連: