我有一個bash腳本在循環中執行程序。我想要評估stdout中的每一行,如果它符合我的條件,請執行一些操作。從stdout評估線
我仍然希望能夠在屏幕上看到標準輸出。有沒有簡單的方法來實現這一點?謝謝!
我有一個bash腳本在循環中執行程序。我想要評估stdout中的每一行,如果它符合我的條件,請執行一些操作。從stdout評估線
我仍然希望能夠在屏幕上看到標準輸出。有沒有簡單的方法來實現這一點?謝謝!
有遍歷輸入幾個變種,但有可能是這樣的:
my_cmd | while read line; do
echo "$line"
my_process "$line"
done
請注意,您可以使用multiplve變量名將塊讀入它們中('| while read id number description; do echo $ number:$ id; done') – sehe 2011-04-25 22:05:10
要保留空白,引用變量:'echo「$ line」; my_process「$ line」' – 2011-04-25 23:58:40
另外,請注意,將'while'放入管道中意味着while體在子進程中執行。根據'my_process'的不同,OP可能不需要這麼做,所以:'while read -r line;做...;完成<<(my_cmd)' – 2011-04-26 00:00:59
這應該做你想要什麼:
for string in "a" "b" "c"
do
output=`echo ${string}`
echo ${output}
if [ ${output} == "b" ] ; then
echo "do something"
fi
done
只需用程序代替第一回波。
這是迭代在字符串文字列表。這個問題特別要求STDOUT中的行是可迭代對象。 – 2012-04-16 16:56:49
以下工作: 用於'ls。'中的字符串 做 echo $字符串 完成 – Andrey 2016-12-08 10:05:41
你的意思是說你想**回顯你正在解析的行嗎? – 2011-04-25 21:20:44