Solarisでオンラインネットワーク/シェルサービスを検出したいです。この目的のために、次のスクリプトを作成しました。
compare_ser()
{
if [ "$1" != "" ]; then
echo "True" >> Solaris.txt
fi
}
export -f compare_ser
svcs network/shell | cut -d ' ' -f1 | grep "online" | xargs -n1 bash -c 'compare_ser $@'
端末で実行すると、svcs network/shell | cut -d ' ' -f1 | grep "online" | xargs -n1 echo
次の結果が表示されます。
online
online
しかし、私のスクリプトには何も表示されません。何の問題がありますか?
ベストアンサー1
私はより短い方法があると信じています。
svcs network/shell | awk '/online/ {system("bash -c \"compare_ser "$1"\"")}'
異議申し立て者の皆さん、あなたの決定を説明してもらえますか? Linuxとは何か理解していますか?上記のスクリプトは機能するスニペットであり、これを行う方法はおそらく何百万ものものです。だから説明を求めます。