Linux
Bash SSH 版本
無法將 SSH 版本號分配給 bash 中的變數。執行下面的程式碼,“uname -a”的輸出分配給變數“os”,但是“ssh -v”的輸出出現在終端視窗中,但沒有分配給變數“ssh_v”。
確認這發生在各種版本的 Solaris 和 Ubuntu 上,我不知道為什麼。
程式碼:
#!/usr/bin/env bash ssh_v=$(ssh -V) printf "ssh_version = $ssh_v\n" os=$(uname -a) printf "OS_version = $os\n"
輸出:
root@myserver:/usr/build/run# ./test.sh Sun_SSH_2.4, SSH protocols 1.5/2.0, OpenSSL 0x100020bf ssh_version = OS_version = SunOS myserver 5.11 11.3 sun4v sparc sun4v
看起來 SSH 在標準錯誤中列印版本,而不是標準輸出。所以你需要將stderr重定向到stdout:
ssh_v=$(ssh -V 2>&1)