ユーザ応答に基づいてファイルをコピーするシェルスクリプトを作成しようとしています。私がやろうとしていることの例:Bash - ファイルまたはディレクトリをコピーするための応答を読み取る
#!/bin/bash
echo "What is the name of the user?: "
read RESPONSE
cp /home/$RESPONSE/file.txt /home/$RESPONSE/backup/file_backup.txt
しかし、私のコピーコマンドは読み込み変数を正しく受け入れていないようです。 私は何が間違っていますか?
* *正確に*間違っていますか?ユーザー名にスペースやリテラルのバックスラッシュがある場合、またはグロブとして評価できる場合、バグはかなり明白ですが、観察された*正確な動作についてより具体的に説明する必要があります。 "受け入れていないようだ" - どうやって知っていますか?正確な入力と出力の正確なエラーは何ですか? –
'bash -x yourscript'を実行して、呼び出されたコマンドのロギングを実行することを検討してください。また、http://shellcheck.net/を介して実行し、見つかったものを修正します(これは、ここでシェルの質問をする前に常に良いアドバイスです)。 –
また、自分の変数にはすべて大文字の名前を使用しないでください!すべての大文字の名前は、オペレーティングシステムやシェルに意味を持つ変数によって使用されます。小文字の名前を使用すると、間違ってそれらを踏むことはありません。 [関連標準のドキュメント](http://pubs.opengroup.org/onlinepubs/009695399/basedefs/xbd_chap08.html)のパラグラフ4を参照してください(環境変数について議論していますが、通常のシェル変数を設定すると、という名前の環境変数であるため、両方の場所で規約が適用されます)。 –