我想提出一個腳本,可以做幾臺機器相同的任務,像這樣:猛砸模式內匹配[試塊
#!/bin/bash
if [[ hostname = login.machine1 ]]; then
#do things how they are done on machine1
...
elif [[ hostname = login.machine2 ]]; then
#etc.
fi
問題:有些機器有幾個登錄節點,就像login1.machine2
,login2.machine2
,等我都試過殼模式匹配和正則表達式,但他們沒有工作:
if [[ hostname = login?.machine2 ]]
if [[ hostname == login?.machine2 ]]
if [[ hostname =~ login[0-9].machine2 ]]
if [[ hostname =~ login[0-9]\.machine2 ]]
,並至少有十幾個類似的圖案,帶有或不帶引號等什麼是做一個測試,將返回正確的方式如果hostname = login1.machine2或login2.machine2,則爲true TC?積分可與[
配合使用,而不是[[
。
我建議使用變量'$ HOSTNAME'或out放命令主機名:'$(主機名)'。 – Cyrus
我不知道你使用的是什麼樣的shell。但在bash中'if [[$(hostname)= login?.machine2]]'這將檢查主機名是否等於字符串「login?.machine2」 – naab