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

标签 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 行(它具有更简洁和易于理解的语法)

谢谢!!

最佳答案

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

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

关于linux - 1号线不工作,这两条线不一样吗?为什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34312296/

相关文章:

c - 值(value)观是什么?

java - 在Java中,如果没有传递参数,如何为变量number=Integer.parseInt(args[0])赋值?

c - Linux读取函数实现

Linux 拉撒路 : Wrong FileSize Reported by TFileStream

mysql - 在 linux 文件系统上索引文件的 Ruby 进程

linux - Bash 编程无限循环

python - 为什么当我激活 virtualenv 时我的提示符没有改变?

php - 从 AJAX 获取数据 - 如何

python - 在 bash 中运行并行命令

bash - CDPATH 配置但不工作