次のスクリプトを使用して、ターミナルからテキスト ファイルに行を複数回送信しようとしています。最初の行とその説明を 2 行目に記述した後、スクリプトはユーザーに別の行を入力するかどうかを尋ねます。はいの場合、ユーザーは 3 行目、4 行目などを書き込みます...
私の問題は、2 行目以降、つまり 3 行目以降で、スクリプトが完全な文ではなく最初の単語だけを書き込むことです。これを解決するにはどうすればよいですか?
function ml() {
echo $@ >> $HOME/path/to/file/filename
echo -n "Enter description and press [ENTER]: "
read description
echo -e '\n[\t]' $description >> $HOME/path/to/file/myfile
while true
do
read -p "Add another line?y?n" -n 1 -r
echo -e "\n"
if [[ $REPLY =~ ^[Yy]$ ]]
then
echo -n "Enter another line and press [ENTER]: "
read -a meaning
echo -e "[\t]" $meaning >> $HOME/path/to/file/myfile
else
break
fi
done
echo % >> $HOME/path/to/file/myfile
}
また、コードに別の変更を加えたいと思います
read -p "Add another line?y?n" -n 1 -r
y/n 入力を求める代わりに、最初の 2 行を挿入した後、ENTER を押すたびに別の行入力を求め、ESCAPE を押すとスクリプトが終了するようにすることはできますか?