Ssh
如何在遠端 ssh 會話上使用 awk 列印特定列?
使用時
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
錯誤的時間被解釋。至少有兩種解決方案:
- 在;
\
之前放一個$
例如/usr/bin/ssh -i /path/to/key user@server "df -h | grep /dev/root | awk '{print \$5}'"
df
遠端執行grep
和awk
本地執行。例如/usr/bin/ssh -i /path/to/key user@server df -h | grep /dev/root | awk '{print $5}'
FWIW,我會執行第二個選項的版本,但合併
grep
和awk
/usr/bin/ssh -i /path/to/key user@server df -h | awk '/\/dev\/root/ {print $5}'