-1

Linuxのcmdで変数の値をファイルに書き込んでほしい。これが私が持っているものです、

x=$(cat /home/kate/Documents/Desktop/New-ACE-Deploy/deploy/ace/deploysetup/ConfFiles/online_ace_stable-m4.5.conf)
echo $x
cd /etc/apache2/sites-enabled
cat > online_ace_stable-m4.5.conf
echo "$x" >> "/etc/apache2/sites-enabled/online_ace_stable-m4.5.conf" 

しかし、終了するにはCtrl+Dを押す必要があります。やりたくない。任意の選択肢。

4

2 に答える 2

1

行を削除するcat > online_ace_stable-m4.5.confと、Ctrl+Dを押すことに関して問題がないはずです。スクリプトを実行する前にファイルが存在する可能性がある場合は>>、最後の行の(追加)を>(上書き)に追加で置き換えます。

ファイルが存在し、空であることを明示的に確認する必要がある場合は、を使用してecho -n > online_ace_stable-m4.5.confください。

于 2013-03-07T10:05:09.357 に答える
1

4行目のcatコマンドが正しくありません。ファイルパラメータがありません。このパラメータがないと、にコピーstdinされstdoutます。これstdinは閉じられるまで続くので、使用する必要がありますCTRL-D

問題を修正するには、行を次のように変更します。

cat online_ace_stable-m4.5.conf

>(なくなったことに注意してください)

空の(新しい)ファイルを作成する場合は、次touchの代わりに使用しcatます。

touch online_ace_stable-m4.5.conf

または、ファイルに直接エコーします。

echo "$x" > "/etc/apache2/sites-enabled/online_ace_stable-m4.5.conf"

最初に作成する必要がないため、古いコンテンツが保持されていないことを確認してください。>(ダブルではなくシングルに注意してください>>

于 2013-03-07T10:06:23.777 に答える