コマンドの後に入力するすべての内容を生の文字列として処理できますか?

コマンドの後に入力するすべての内容を生の文字列として処理できますか?

私はtree_holeファイルにいくつかの単語を入れることができるようにbash関数を作成しました。 bashrcでは次のようになります。

function th { echo -e "\n$@" >> /Users/zen1/zen/pythonstudy/tree_hole; }
export -f th

したがって、th Tom, I like your new laptop「Tom ...」文全体をtree_holeファイルの最後まで表示できます。

しかし、問題があります。この関数は、変数のすべての部分を元の文字列に変換しないようです。したがって、予想される代わりに欠落がth "hi, Tom"発生します。また、bashで誤って解釈され、より多くの入力を必要とする単一または `を入力することはできません。hi Tom"hi, Tom""'"

それでは、コマンドの後にあるものを生の文字列として入力する方法はありますか?それとも特別な"`問題を解決するには、どのように機能を改善するべきですか?'

ベストアンサー1

あなたが望むことは不可能です。シェルの動作は気に入らないが、シェルの動作のこの部分は変更できない。

私はこれがあなたにとってうまくいくと思います:

function th { { echo; cat; } >> /Users/zen1/zen/pythonstudy/tree_hole; }

関数は引数なしで呼び出されます。cat標準入力から読み込み、ファイルに追加します。端末で入力できるすべての項目を入力できます(たとえば、、、、"改行'文字など問題ありません)。Ctrl- で入力を終了できますD

おすすめ記事