【发布时间】:2017-08-20 10:46:47
【问题描述】:
我对 for 循环有疑问。会为你简述。
$ for i in `cat serverss`;do ssh -q $i sudo echo "a b c" > /tcb/files/auth/x/xyz;done
ksh: /tcb/files/auth/x/xyz: cannot create
每当我尝试创建或修改文件时,我都会遇到上述错误。 serverss 是包含服务器列表的文件文件。我们在这些系统上使用 sudo 进行 root。
问题是当我在单个服务器上运行 echo "a b c" > /tcb/files/auth/x/xyz 时,它运行良好。我的 for 循环中出现上述错误的问题是什么。
【问题讨论】:
-
for循环本身根本不是问题;这是如何给出ssh的参数的问题。ssh -q $i sudo echo "a b c" > /tcb/files/auth/x/xyz根本不在任何for循环内,您也会遇到同样的问题。 -
还有一点是
sudo echo是没用的:它提升了echo的权限(就是写到stdout),不是shell打开@的权限987654329@.