我希望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才能结束。我不想这样做。任何替代方案。
答案 0 :(得分:1)
删除cat > online_ace_stable-m4.5.conf
行,按Ctrl + D就可以了。如果在运行脚本之前文件可能存在,则您希望在>>
(覆盖)的最后一行上另外替换>
(追加)。
如果您确实需要明确确保文件存在且为空,请使用echo -n > online_ace_stable-m4.5.conf
。
答案 1 :(得分:1)
第4行的cat
command不正确。它缺少文件参数。如果没有此参数,则会将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"
因为它不需要首先创建它并确保不保留旧内容。 (请注意单>
而不是双>>
)