语法错误 源代码行为 1

语法错误 源代码行为 1

我在 hostlist 文件中有一个服务器列表,我正在尝试执行以下脚本:

#!/bin/bash
for server in `cat hostlist`; do
ssh $server 'hostname ;id $(cat /etc/passwd | grep Luyang | awk -F '[:]' '{print $1}') ; id  ppandey' >> b
done

我想获取用户 Luyang 的 id 命令的输出。对于同样的情况,我已经提到过,id $(cat /etc/passwd | grep Luyang | awk -F '[:]' '{print $1}')但在运行脚本时出现错误。

我也尝试在所有特殊字符前面加上“\”,但没有成功。

答案1

您应该查阅 shell 手册,了解转义/引用的工作原理。同时,还要研究 awk 的功能,这通常可以简化操作,提高速度和可读性。

这可能会有帮助:

ssh yourhost "hostname ;id \$( awk -F: '/Luyang/ {print \$1}' /etc/passwd)"

相关内容