Ssh

如何在遠端 ssh 會話上使用 awk 列印特定列?

  • July 20, 2021

使用時

df -h | grep /dev/root | awk '{print $5}'

我在我的 Pi 中使用了我的 SD 卡:78%

但是當我使用

/usr/bin/ssh -i /path/to/key user@server "df -h | grep /dev/root | awk '{print $5}'"

從另一台電腦,我得到:

/dev/root       7.2G  5.3G  1.6G  78% /

完整df -h

Filesystem      Size  Used Avail Use% Mounted on
/dev/root       7.2G  5.3G  1.6G  78% /
devtmpfs        364M     0  364M   0% /dev
tmpfs           368M   68K  368M   1% /dev/shm
tmpfs           368M  5.2M  363M   2% /run
tmpfs           5.0M  4.0K  5.0M   1% /run/lock
tmpfs           368M     0  368M   0% /sys/fs/cgroup
/dev/mmcblk0p1   60M   21M   40M  35% /boot
tmpfs            74M  4.0K   74M   1% /run/user/1000

您遇到了報價問題;在$5錯誤的時間被解釋。至少有兩種解決方案:

  1. 在;\之前放一個 $例如
/usr/bin/ssh -i /path/to/key user@server "df -h | grep /dev/root | awk '{print \$5}'"
  1. df遠端執行grepawk本地執行。例如
/usr/bin/ssh -i /path/to/key user@server df -h | grep /dev/root | awk '{print $5}'

FWIW,我會執行第二個選項的版本,但合併grepawk

/usr/bin/ssh -i /path/to/key user@server df -h | awk '/\/dev\/root/ {print $5}'

引用自:https://unix.stackexchange.com/questions/294676