スクリプトの全機能に問題があります

スクリプトの全機能に問題があります

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とは何か理解していますか?上記のスクリプトは機能するスニペットであり、これを行う方法はおそらく何百万ものものです。だから説明を求めます。

おすすめ記事