私はシェルスクリプトの作成に少し慣れていないので、スクリプト内に新しいファイルを作成し、コンテンツを追加してから閉じます。ユーザーからの引数を取るべきではありません。パスとコンテンツのすべてが事前定義されています。どうすればいいですか?
私はシェルスクリプトの作成に少し慣れていないので、スクリプト内に新しいファイルを作成し、コンテンツを追加してから閉じます。ユーザーからの引数を取るべきではありません。パスとコンテンツのすべてが事前定義されています。どうすればいいですか?
回答:
出力リダイレクトを使用します。例えば
#!/bin/bash
echo "some file content" > /path/to/outputfile
>
すべて書きますstdin
が提供するstdout
のecho
ファイルにoutputfile
ここに。
または、tee
これにパイプを使用することもできます。例えば
echo "some file content" | tee outputfile
どの例でも既存のを上書きすることに注意してくださいoutputfile
。
現在存在するファイルに追加する必要がある場合>>
は、>
またはの代わりに使用しますtee -a
。
この行でユーザー入力を受け入れない場合、ユーザー入力はここでの動作を変更できません。
hereドキュメントを使用してスクリプトで新しいファイルを作成する方が優れていると思います。見た目がすっきりしていて、読みやすくなっていると思います。
例えば:
cat > filename <<- "EOF"
file contents
more contents
EOF
"-"
中には<<-
されるタブ付きインデントを可能に、任意であり剥奪ファイルが作成されたとき。引用符は、"EOF"
「here doc」が置換を実行するのを防ぎます。