gpt4 book ai didi

linux - 在 shell 脚本中使用 echo 丢失字符

转载 作者:太空宇宙 更新时间:2023-11-04 10:11:45 24 4
gpt4 key购买 nike

我尝试编写一个 shell 脚本,它使用特定的命令运行命令,例如 sudo su - user 所以我使用了 sudo -H -u user bash -c 一切都是除了一些 echo 命令外,工作正常。

这行不通,我无法解决

sudo -H -u mailq bash -c "cd /var/www/html; echo -e \"
#!/bin/bash

NAME=\"user\"
DIR=/var/www/html
cd \$DIR
\" > start"

它打印成

#!/bin/bash


NAME=user
DIR=/var/www/html
cd

最佳答案

将您的原始实现与以下内容进行比较:

sudo -H -u mailq sh -c 'cat >"$1"' _ /var/www/html/start <<'EOF'
#!/bin/bash
NAME=user
DIR=/var/www/html
cd "$DIR"
EOF

因为 <<'EOF'引用了 heredoc,其中的所有内容都是文字。无需逃避 \$DIR以防止立即对其进行评估。

关于linux - 在 shell 脚本中使用 echo 丢失字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48653653/

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