【问题标题】:Line 1 is not working, are not the same these two lines? why?第1行不工作,这两行不一样吗?为什么?
【发布时间】:2016-03-22 14:31:57
【问题描述】:

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

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

我不知道为什么这条线不起作用:(Call line 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 行(语法更简洁易懂)

谢谢!!

【问题讨论】:

标签: linux bash variables scripting zenity


【解决方案1】:

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

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

【讨论】:

  • 效果很好,正是我所需要的,非常感谢!!
  • 有没有办法在那个窗口中说:“进度条已满,缺少 x 秒”?并且变量 x 每经过一秒就会减少 1
  • 我对zenity一无所知,抱歉。我以为你的主要问题是关于 shell 脚本的。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-06-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多