ファイルを手動で書きたくないので、シェルスクリプトを作成しました。ユーザーがキーを押すことなく、自動的にファイルを書き込んで保存する方法はありますか?
Sudo nano blah
#write stuff to file
#save file
#continue
^これは* .shファイル内にあります
または、スクリプトで単純なテキストファイルを作成する別の方法はありますか?
コマンドのより複雑なシーケンスについては、cat
コマンドと here document の使用を検討する必要があります。基本的なフォーマットは
command > file << END_TEXT
some text here
more text here
END_TEXT
END_TEXTラベルが引用されているか引用されていないかに応じて、2つの微妙に異なる動作があります。
引用符なしラベル:内容は通常のシェル展開の後に書き込まれます
引用符付きラベル:ヒアドキュメントの内容は、通常のシェル拡張なしで文字通り処理されます
たとえば、次のスクリプトを考えます
#!/bin/bash
var1="VALUE 1"
var2="VALUE 2"
cat > file1 << EOF1
do some commands on "$var1"
and/or "$var2"
EOF1
cat > file2 << "EOF2"
do some commands on "$var1"
and/or "$var2"
EOF2
結果は
$ cat file1
do some commands on "VALUE 1"
and/or "VALUE 2"
そして
$ cat file2
do some commands on "$var1"
and/or "$var2"
スクリプトからシェルコマンドを出力する場合は、おそらく引用符で囲まれた形式が必要です。
これを行うためにエディターをいじる必要はありません。
簡単なechoコマンドでファイルに何かを追加できます。例えば
echo "Hello World" >> txt
「Hello world」をファイルtxt
に追加します。ファイルが存在しない場合は作成されます。
または、ファイルが既に存在する可能性があり、上書きする場合
echo "Hello World" > txt
1行目:および
echo "I'm feeling good" >> txt
echo "how are you" >> txt
後続の行。
最も簡単なのは、.sh
スクリプトに一連のエコーコマンドを含めるだけの場合です。