スクリプトの変数に複数行文字列を割り当てる

スクリプトの変数に複数行文字列を割り当てる

PS私のファイル.profileで定義されている変数に次の値が必要です。

PS1='PWD: ${PWD}
$ '

$PSこのように端末に入ると、最初の行に作業ディレクトリが表示された2行のプロンプト文字列が表示されます。私のファイル.profileでどのように定義しますか?

編集:重複していると推定される質問はまったく同じではありません。私の質問は、シェルスクリプトの変数に複数行の値を割り当てることです。次のEnterも機能しないようです\n\私が書いた課題は、インタラクティブな面で本当にうまくいきました。実際、私はOneNoteに保存し、シェルに頻繁にコピー/貼り付けをします。しかし、私のファイルや他のスクリプトにこのステップをスキップできるようにしたいと思います.profile。そのままスクリプトに書くとうまくいきません。最後に、誰かがPS1を自動的に変更するように提案しても大丈夫です。ただし、理想的には上記の内容はすべて変数に割り当てられ、 を入力するとPS設定$PSPS1れます。

編集2:解決策が見つかりました。 .profileから:

PS1="PWD: ${PWD}
\$ "

これはPS1を実行するときにのみ変更されます。 . .profile 奇妙なことは.profile起動時に何とか実行されていることを知っているからです。 (実行する前に定義された変数をエコーし​​ようとしましたが、変数が存在します。後で実行される他のファイルが自動的に設定されるよう.profileです。デフォルトの行)が、変更が適用されるかどうかをある程度制御したいので、私が欲しいものだと思います。変更を適用するには実行し、それ以外の場合は何もしません。混乱させて申し訳ありません。まもなく説明を更新しようとしています!.profilePS1. .profile

答え1

指定された値を使用して.profileファイルにPS変数を定義するには、次の行を追加するだけです。

export PS1="PWD: \${PWD}\n\$ "

関連情報