変数の数を調べて、出力を生成するスクリプトを作成しようとしています。つまり、pingを使用し、ttyに基づいてLinuxまたはWindowsを実行していることを確認します。仕事は複雑すぎるかもしれませんが、これは私が得たものです。
#!/bin/bash
var1=$(ping $1 -c 1) | awk '{if("$var1"=="128") print "Host is LIVE Running: Windows OS"}'
出力を生成しません。 awkを使わずにIF文を使ってみましたが、接続できないとわかっているIPを入力すると出力は生成されません。
#!/bin/bash
var1=$(ping $1 -c 1)
if [[ "$var1" == *"128"* ]]; then
echo "Host is LIVE Running: Windows OS"
elif [[ "$var1" == *"64"* ]]; then
echo "Host is LIVE Running: Linux OS"
elif [[ "$var1" == *"Unreachable"* ]]; then
echo "Host appears DOWN!"
fi
建設的な批判を歓迎します!ありがとうございます。
ベストアンサー1
awk
環境で変数を使用するには、変数を設定する必要があります。このように:
var1=$(ping $1 -c 1) ; awk -v var2=$var1 '{if(var2 == 128)....
数値を比較するときは、bash
次のものを使用する必要があります。
if [[ "$var1" -eq *"128"* ]]; then...
=
文字列の場合とAFAIKのbash
両方を使用できます。これは同じ意味です(から)。=
==
if