为何我的 shell 命令不起作用?

为何我的 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 期间权限被拒绝?,所以我尝试将命令括在引号中,但没有成功。有什么建议吗?

答案1

引号''可防止变量插入。请使用""

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

相关内容