【发布时间】:2020-07-20 20:13:19
【问题描述】:
我有一个使用awk 的命令,我正在尝试通过 SSH 远程运行。
这是在本地运行时的命令和示例输出:
df -h -P | awk '{print $1,$2,$3,$5,$6}'
Filesystem Size Used Use% Mounted
/dev/mapper/volgroup00-lv_root 3.9G 2.7G 74% /
tmpfs 2.9G 0 0% /dev/shm
/dev/mapper/volgroup00-lv_seemis 4.4G 3.6G 87% /STORE
/dev/sda1 477M 195M 44% /boot
/dev/sdb1 30G 26G 90% /data
该命令的输出然后由我的脚本的其余部分处理。但是,当我尝试远程运行该命令时,它会产生错误。这是远程命令及其产生的错误的示例(其中$servername 是服务器的 FQDN,$user 是 SSH 用户):
timeout 10s ssh -n $user@$servername "df -h -P | awk '{print $1,$2,$3,$5,$6}'"
awk: cmd. line:1: {print ,,,,}
awk: cmd. line:1: ^ syntax error
awk: cmd. line:1: {print ,,,,}
awk: cmd. line:1: ^ syntax error
awk: cmd. line:1: {print ,,,,}
awk: cmd. line:1: ^ syntax error
awk: cmd. line:1: {print ,,,,}
awk: cmd. line:1: ^ syntax error
awk: cmd. line:1: {print ,,,,}
awk: cmd. line:1: ^ syntax error
awk: cmd. line:1: {print ,,,,}
awk: cmd. line:1: ^ unexpected newline or end of string
感觉这与远程运行命令时使用$1、$2等有关。
如何解决awk 产生的这个错误?
【问题讨论】: