他のコマンドを実行する場合は、そのポートが出力に含まれていることを確認してください。

他のコマンドを実行する場合は、そのポートが出力に含まれていることを確認してください。

私は以下を持っていますcommandbprintf '%s' "${PORTS[0]}"; printf ',%s' "${PORTS[@]:1}"

他のコマンドのポートをリストし、その出力はcommandb次のとおりです。

2200,800,8000

このポートはファイル名に保存されます。res.txt

commandb特定のポートがあることを確認したいです8000。そうであればポートを実行しcommandc、そうでなければ何もしません。

Bashでどのようにこれを達成できますか?

ベストアンサー1

grep -w以下を使用して単語の境界を指定できます。

$ grep -qw '8000' res.txt && echo 'hello world'
hello world

この-qオプションは単にgrep結果が印刷されるのを防ぎ、終了コードに従って操作を実行するだけです。このオプションがないと、次のようにラップされているため、-w成功した結果が得られます。808008000

$ grep -q '80' res.txt && echo 'hello world'; echo $?
hello world
0
$ grep -qw '80' res.txt && echo 'hello world'; echo $?
1

複数のポートが存在することを確認するには:

if grep -qw -e '8000' -e '80' res.txt; then
    do something
fi

おすすめ記事