親の回答に対するフォローアップこの問題、私の考えに私はできる:
1)コマンド定義:
cmd='for x in $(my_command | grep keyword | cut -d" " -f1); do command2 "arguments" $x; done'
2) ループは次のように実行されます。
while true; do "$cmd"; sleep 1; done
ただし、上記の方法は機能しません。次のような結果が表示されます。
zsh: command not found for x in $(......
zsh: command not found for x in $(......
zsh: command not found for x in $(......
...
どんなアイデアがありますか?
言う:
実行するとfor x in $(my_command | grep keyword | cut -d" " -f1); do command2 "arguments" $x; done'
完璧に動作します。
付録:
eval
次のように使用すると機能することがわかりました。
while true; do eval "$cmd"; sleep 1; done
cmd
毎秒ごとにコマンドを実行する
ベストアンサー1
同じシェルで実行するコマンドを準備するには、関数を使用してください。
cmd () {
for x in $(my_command | grep keyword | cut -d" " -f1); do
command2 "arguments" $x
done
}
while true; do cmd; sleep 1; done