Ubuntu bash 回显“$PASSWORD”| sudo -S WID=$(cat /var/lib/FILE)

Ubuntu bash 回显“$PASSWORD”| sudo -S WID=$(cat /var/lib/FILE)

/var/lib/FILE root:root 0600(一行文本)

如何将 /var/lib/FILE 读入 $WID

 echo "$PASSWORD" | sudo -S WID=$(cat /var/lib/FILE) not working for me.

答案1

如果您需要当前 shell 中的变量中的文件内容,则上述方法将不起作用,因为分配是在子 shell 中完成的,并且在退出子 shell 后会丢失(诚然,有些 shell 不会丢失变量)。

为了sudo工作,您需要有一个sudoers允许您运行命令的条目。变量赋值不是命令,因此上面的操作将再次失败。

如果您希望将文件的内容存储在变量中,但没有读取该文件的权限,请尝试

WID=$(echo "a" | sudo -S cat /var/lib/FILE)

相关内容