gpt4 book ai didi

bash - ubuntu:将多行写入文本文件

转载 作者:行者123 更新时间:2023-12-04 18:55:59 55 4
gpt4 key购买 nike

关闭。这个问题不符合Stack Overflow guidelines .它目前不接受答案。












我们不允许在 Stack Overflow 上提出有关通用计算硬件和软件的问题。您可以编辑问题,使其成为 on-topic对于堆栈溢出。


5年前关闭。







Improve this question




我正在尝试将多行写入文本文件,如下所示:

cat <<EOT >> /etc/apache2/sites-available/eco.conf
<VirtualHost *:80>
ServerName eco.vagrant
DocumentRoot /var/www/eco/website/public

<Directory var/www/eco/website/public/>
Options FollowSymLinks
AllowOverride All
</Directory>

# Logging
ErrorLog /var/log/apache2/eco-error.log
LogLevel notice
CustomLog /var/log/apache2/eco-access.log combined
</VirtualHost>
EOT

但我得到 bash: /etc/apache2/sites-available/o-eco.conf: Permission denied
所以我尝试了 sudo cat...但还是一样。

我非常喜欢这样,而不是单行,因为它在 bash 脚本中,我可以清楚地看到将用缩进等写入的内容。

我应该使用什么工具以这种方式编写?或者我应该如何在这里使用 cat ?

最佳答案

如果你这样做 sudo cat <<EOT >>filename ,输出重定向发生在您的原始 shell 中,而不是在 super 用户进程中,所以它仍然失败。您需要通过显式执行 shell 将重定向移动到 super 用户进程中。

sudo bash -c 'cat <<EOT >>/etc/apache2/sites-available/eco.conf
<VirtualHost *:80>
ServerName eco.vagrant
DocumentRoot /var/www/eco/website/public

<Directory var/www/eco/website/public/>
Options FollowSymLinks
AllowOverride All
</Directory>

# Logging
ErrorLog /var/log/apache2/eco-error.log
LogLevel notice
CustomLog /var/log/apache2/eco-access.log combined
</VirtualHost>
EOT
'

关于bash - ubuntu:将多行写入文本文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41626294/

55 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com