スクリプトで2つの条件を指定することにこだわっています。私は2つのことを読むことができます-
- 最も近いサーバーとは
- MacBookまたはそれ以外の場合
次に、デフォルトのwriteコマンドを使用して、plistファイルを変更します。
モデルとサーバーの両方をクロスチェックする行を追加して、それに応じてファイルを書き込むにはどうすればよいですか?
#!/bin/sh
# Get the logfile for this machine
dslog="/tmp/DSNetworkRepository/Logs/$(ioreg -l | grep IOPlatformSerialNumber | awk '{print $4}' | cut -d \" -f 2).log"
NEARESTSERVER=$(awk 'gsub(/.*server=|port=.*/,"")' $dslog | tail -1)
# get machine model
MACHINE_MODEL=`/usr/sbin/ioreg -c IOPlatformExpertDevice | grep "model" | awk -F\" '{ print $4 }'`
MacBook=`/usr/sbin/ioreg -c IOPlatformExpertDevice | grep "model" | cut -c21-27`
# Check if the Model is MacBook or Desktop & connected to which Booster and write the plist file accordingly
if [[ "${MACHINE_MODEL}" == "MacBook" && $NEARESTSERVER == 'SRV-DELHI.xaas.com']]
then
defaults write /Library/com.myorg.repo ConnectionNumber -string One
elif [[ "${MACHINE_MODEL}" != "MacBook" && $NEARESTSERVER == 'SRV-DELHI.xaas.com']]
then
defaults write /Library/com.myorg.repo ConnectionNumber -string Two
fi
# Check if the Model is MacBook or Desktop & connected to which Booster and write the plist file accordingly
if [[ "${MACHINE_MODEL}" == "MacBook" && $NEARESTSERVER == 'SRV-MUMBAI.xaas.com']]
then
defaults write /Library/com.myorg.repo ConnectionNumber -string Three
elif [[ "${MACHINE_MODEL}" != "MacBook" && $NEARESTSERVER == 'SRV-MUMBAI.xaas.com']]
then
defaults write /Library/com.myorg.repo ConnectionNumber -string Four
fi
exit 0
Er-質問は何ですか?いくつかの条件を含むスクリプトがあり、それらは一見整形式のようです。私はMacを持っていないので、チェックすることはできません...
—
エドワード
スクリプトに2つ入れたらどうすればいいのか知っている必要がありますか?つまり、MACHINE_MODELが何であり、NEARESTSERVERが何であるかを確認し、それに応じてアクションを実行する必要があります。
—
JamesHumam
申し訳ありませんが、まだわかりません。MACHINE_MODELとNEARESTSERVERをすでにチェックしており、それに応じてアクションを実行します。もちろん、スクリプトは(ifをカスケード接続することで)多少簡略化できますが、基本的にはあなたが求めていることを行うようです。(確認するために実行できません)
—
エドワード