少ないファイルでサーバーを構成する必要があり、プログラムでそれを行いたいです。
/home/a.config、/var/spool/b.config、/etc/c.configなどのファイルを作成する必要があります
上記のファイルにはいくつかの内容(複数行)があります。
複数の行(約10)で3つのファイルすべてを作成できる1つのシェルスクリプトを作成します。 CATコマンドを使用してそれを行う方法を知りたいです。 (シェルスクリプト内)。
私はこのように見える
echo " going to create /home/a.config"
cat "HOW CAN I HAVE MULTIPLE LINES HERE?? " > /home/a.config
ありがとう
ヒアドキュメントを使用できます。
cat <<EOF >/home/a.config
first line
second line
third line
EOF
これらのいくつかを同じスクリプトに配置できます。
file = "/ tmp/test.txt"
echo "最初の行の追加"> $ file
echo "最初の行の追加を置換"> $ file
echo「2行目の追加」>> $ file
echo "3行目の追加" >> $ file
cat $ file
>コンテンツを追加/置換します(ここでは実際のコンテンツは2行目で置換されます)
>>追加
結果
最初の行の追加が置き換えられました
2行目の追加
3行目の追加
そのようです:
#!/bin/bash
var="your text"
echo "simply put,
just so: $var" > a.config
詳細については、「 abs の入出力部分」を参照してください。
お役に立てれば。
テキストに$ 1や$ HOMEDIRなどの変数がある場合、これらは通常評価され、実際の値に置き換えられます。これらが置換されないようにするには、開始制限文字列(下の例ではEOF)を単一引用符'EOF'
、二重引用符"EOF"
で引用するか、その前にバックスラッシュ\EOF
を付ける必要があります
終了制限文字列はそのままです。 EOF
これは、シェルスクリプトをファイルに書き込む場合に特に便利です。
cat << 'EOF' >/etc/rc.d/init.d/startup
case $1 in
start)
start
;;
stop)
stop
;;
restart)
stop
start
;;
status)
pid=$(Tomcat_pid)
if [ -n "$pid" ]
then
echo "Tomcat is running with pid: $pid"
else
echo "Tomcat is not running"
fi
;;
esac
EOF
Here Documents でオフになっている例19.7のパラメーター置換を参照してください
>\#!/bin/bash
>
>var="your text" <br>
>echo "simply put, <br>
>just so: $var" > a.config
また、特定の文字をエスケープして、しようとしていることを妨げないようにする必要があることに注意してください。たとえば、$ `と"は、バックスラッシュを前に付けない限り、このようなステートメントをすべて中断します。つまり、\ `\ $または\"
以下を定義すると:
var = "100"
以下は期待どおりに動作しません。
エコー「簡単に言えば、
ちょうど私を「貸して」US $ $ var」> a.config
しかし、以下は正常に機能します。
エコー「簡単に言えば、
ちょうど\ "lend \" me US\$ $ var "> a.config