为什么我的shell命令不工作?

我有一个shell脚本,我正在使用pssh来获取远程服务器上的用户的用户ID:

for USER in $(cat users.txt); do runuser -l mike -c 'pssh -H server.mike.com -o /home/mike/output id -u $USER' cat /home/mike/output/server.mike.com 

文件users.txt包含一行

 mikeghen 

当我运行我的脚本,我得到一个错误:

 [1] 14:23:15 [FAILURE] server.mike.com Exited with error code 1\ 

但是,当我运行命令:

 runuser -l mike -c 'pssh -H server.mike.com -o /home/mike/output id -u mikeghen' 

我没有得到错误:

 [1] 13:11:53 [SUCCESS] server.mike.com 

我觉得这跟我之前问过的问题有关, 为什么在pssh期间拒绝权限? ,所以我试图用引号括起我的命令,但没有运气。 有什么build议么?

''引号阻止可变插值。 用""代替。

 host:~ sven$ echo $USER sven host:~ sven$ echo '$USER' $USER host:~ sven$ echo "$USER" sven