【问题标题】:create / edit file in bash with root privileges使用 root 权限在 bash 中创建/编辑文件
【发布时间】:2015-04-07 04:05:13
【问题描述】:

我正在创建然后写入 bash4 中的一个文件,该文件位于具有 root 权限的目录中。

我查看了 stackoverflow 的这些结果: https://unix.stackexchange.com/questions/37875/how-to-add-a-line-to-a-file-which-has-only-root-write-permission-and-to-continue

但没有帮助我。 $fName 下方包含文件路径。

首先我触摸文件:sudo touch $fName;

我正在编写一个键值对 (YAML),这很有效:

echo " "$key": "$value

但是当我尝试写入文件$fName时:

sudo sh -c 'echo "  "$key": "$value >> $fName';

甚至:

sudo sh -c 'echo \"  "$key": "$value\ >> $fName';

不起作用。

得到各种错误:

替换错误、找不到命令等

我也尝试写入内存或 /tmp,然后将其移动到目录。

这会是一个更好的主意吗?不知何故,这也不起作用。

感谢您的帮助。

【问题讨论】:

  • 谢谢。您的所有解决方案都有效。非常感谢!

标签: bash root


【解决方案1】:

包括变量在内的所有东西都将被视为字符串而不是变量!

这行得通吗? sudo sh -c "echo \" $key: $value \" >> $fName"

【讨论】:

  • 谢谢。您的所有解决方案都有效。非常感谢!
【解决方案2】:

我相信您会希望保留 $fName 周围的引号,以防止 path/filename 中出现空格:

sudo bash -c "echo \"  $key: $value\" >> \"$fName\""

【讨论】:

  • 谢谢。您的所有解决方案都有效。非常感谢!
猜你喜欢
  • 2015-04-08
  • 2019-08-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-05-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多