0

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

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 行(语法更简洁易懂)

谢谢!!

4

1 回答 1

0

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

for i in {1..4}; do
    echo $(( i * 19 ))
    sleep 1
done | zenity --progress --text="BAR PROGRESS!!" --percentage=0 --auto-close
于 2015-12-16T12:42:05.993 回答