.bashrc
書き込み禁止ファイルにデータを渡す作業を簡素化する関数を作成したいと思います。
function pipe {
sudo bash -c "$1"
}
残念ながら、注文は
pipe echo something > /etc/importantfile
それでも許可拒否と表示されます。どうすれば修正できますか?
答え1
すべてを1つのパラメータとして渡したい場合があります。
function pipe {
sudo bash -c "$@"
}
pipe 'echo something > /etc/importantfile'
答え2
これは>シェルで解釈されるからです。実行中のコマンドはリダイレクトを認識しないため、関数に引数として渡すことはできません。つまり、>がsudo
実行される前に実行されます。
あなたができることは、saveというコマンドを使用することです:
save() {
sudo tee "$@" >/dev/null
}
echo something | save /etc/importantfile