1号线不工作,这两条线路不一样吗?为什么呢?

时间:2015-12-16 12:37:54

标签: linux bash variables scripting zenity

我希望你能帮我解决这个问题...... 我有以下代码:

i=1
COMMAND="echo "$((i*19))"; sleep 1; i=$((i+1))"

我不知道为什么这条线不起作用:(拨打第1行)

($COMMAND; $COMMAND; $COMMAND; $COMMAND) | zenity --progress --text="BAR PROGRESS!!" --percentage=0 --auto-close

我也尝试过:

($((COMMAND)); $((COMMAND)); $((COMMAND)); $((COMMAND))) | zenity --progress --text="BAR PROGRESS!!" --percentage=0 --auto-close

这条线如果有效:(呼叫线2)

(echo "$((i*19))"; sleep 1; i=$((i+1)); echo "$((i*19))"; sleep 1; i=$((i+1)); echo "$((i*19))"; sleep 1; i=$((i+1)); echo "$((i*19))"; sleep 1; i=$((i+1))) | zenity --progress --text="BAR PROGRESS!!" --percentage=0 --auto-close

他们不应该是一样的? (第1行和第2行)

我所做的不是放置第1行第2行,而是非常草率,这就是为什么我要使用第1行(它具有更整洁和可理解的语法)

谢谢!

1 个答案:

答案 0 :(得分:0)

我建议使用for循环,而不是尝试将字符串计算为命令:

for i in {1..4}; do
    echo $(( i * 19 ))
    sleep 1
done | zenity --progress --text="BAR PROGRESS!!" --percentage=0 --auto-close