首先,很抱歉這個愚蠢的問題。
我想通過在 shell 腳本下使用以下示例代碼從遠程目標獲取分發資訊。我的本地機器是 Ubuntu16.04,遠程目標是 Ubuntu20.04(192.168.100.15)。但是,當我運行 shell 腳本時,$distribution 的值是 ubuntu16.04。
為什么值不是Ubuntu20.04?以及我應該如何正確修改我的代碼?
ssh [email protected] "distribution=$(. /etc/os-release;echo ) && echo $distribution"
uj5u.com熱心網友回復:
檢查的內容/etc/os-release以找出可用的變數,然后echo是其中之一。例如:
$ ssh [email protected] '. /etc/os-release; echo $PRETTY_NAME'
Ubuntu 20.04.3 LTS
如果要在本地distribution計算機上填充變數,則需要在本地使用構造:$(...)
$ distribution=$(ssh [email protected] '. /etc/os-release; echo $PRETTY_NAME')
$ echo $distribution
Ubuntu 20.04.3 LTS
順便說一句,現在不贊成root向用戶授予 ssh 訪問權限。無論如何,在這種情況下使用是完全不必要的,因為對任何用戶來說都是世界可讀的。root/etc/os-release
uj5u.com熱心網友回復:
使用lsb_release:
ssh [email protected] 'lsb_release -ds'
LSB 表示Linux Standard Base。該命令應該在每個 Linux 系統上都可用。
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/410221.html
標籤:
上一篇:將JSONArray轉換為JavaSparkDataframe
下一篇:使用shell腳本決議文本檔案
