我正在编写一个 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