bashスクリプトの最後に変数に関連する複数行を追加するには?

bashスクリプトの最後に変数に関連する複数行を追加するには?

私は以下を追加したいと思います:

function ps_mem {
   python /home/vagrant/ps_mem/ps_mem.py -p $@
}

コマンドラインで終了します~/.bashrc。私は以下を試してみました。

printf "function ps_mem {\n python /home/vagrant/ps_mem/ps_mem.py -p $@ \n}" >> ~/.bashrc

ほとんど動作しますが、入力フィールドは$@無視され、次のようになります。

function ps_mem {
 python /home/vagrant/ps_mem/ps_mem.py -p
}

代わりに最後に追加する必要があります~/.bashrc

ベストアンサー1

この種の作業には、次の文書を使用してください。

cat <<'EOF' >>~/.bashrc
function ps_mem {
   python /home/vagrant/ps_mem/ps_mem.py -p "$@"
}
EOF

<<'EOF'シェルは、引用時にこの文書の特殊文字を拡張しません。 POSIXではシェルコマンド言語:

単語に引用符が含まれている場合は、[...]この文書行を展開しないでください。

おすすめ記事