私はシェルスクリプトを作成しており、STDOUTをsuコマンド内のファイルにパイプしたいと考えています。出力されたファイルは別のユーザーが所有する必要があります。したがって、suを使用します。しかし、出力するテキストと出力ファイルの名前がの変数(下の例を参照)である場合、suと連携するパイプを取得できません。suと変数付きパイプ
私の回避策は、suを使用せずにファイルにパイプし、必要なユーザーにそのファイルをchownすることです。しかし、suを使ってこれを行う「一歩」の方法があるのだろうか? (例示のみのため)
例:
bash: : No such file or directory
私はダブルを削除する場合:
#!/bin/sh
message="Hello World";
file="/tmp/HelloWorld.txt";
su someuser -c 'echo "${message}" > "${file}"';
この例では、私は次のエラーを取得するように私は、二重引用符で${file}
を置く場合
bash: ${file}: ambiguous redirect
鮮やかな - それは動作します!そして、このような迅速な返事、ありがとう! – Francis
ファイルに「リダイレクト」し、プロセスに「パイプ」します。通常のファイルはパイプではありません。 –