Bash
如何在兩個(或多個)命令之間反復交 替?
我想反复迭代、交替和/或循環多個命令;在一種模式或循環中。期望的最終結果可以被認為與
watch
.我一直在嘗試這個基本公式的變體;但是缺少、錯誤或其他方面的東西:
for x in {1..60}; do *<first command>* && sleep 1 && *<second command>*; done
我認為它只是重複(
do
ing )<first command> &&
六十次,然後所有後續操作都只是一次,就像平常一樣。我嘗試了一些不同的東西;比如使用{
大括號}
、'
引號'
、"
引號"
等;試圖將命令組合在一起,但沒有成功。
這對我有用:
for x in {1..60}; do echo "1" && sleep 1 && echo "3"; done
這也適用於我:
for x in {1..60}; do echo "1"; sleep 1; echo "3"; done
你的另外兩個命令是什麼?
一種簡單的方法是將每個命令放入數組的元素中:
commandlist=('echo "hello"' 'echo "howdy"')
然後遍歷它:
for x in {1..10}; do index=$((x%2)) # % takes the modulus (or remainder) of integer division ${foo[$index]} sleep 1 done
${foo[0]}
展開為echo "hello"
,然後執行。