Bash - 如何将变量从脚本传递到while循环?

时间:2018-04-07 23:23:43

标签: bash

我有scriptA.sh

#!/bin/bash

total=0
total=$((total+1))
export total

我希望将这个脚本放在这样的while循环中:

#!/bin/bash

max=0
while [[ "$max" -lt 2 ]]; do
bash scriptA.sh
max=$(echo $total)
echo Max: $max
sleep 1
done

但是$max的值总是空的,这是我想要的结果:

Max: 1
Max: 2

如何将变量从脚本传递到while循环?

1 个答案:

答案 0 :(得分:0)

  • 使用.代替bash来执行当前上下文中的下标,而不是生成新的下标。
  • 这也消除了使用export
  • 的需要
  • 在主脚本中定义$total,只在下标中更改它。
  • 直接将$total的值复制到$max,而不是echo
  • 应用缩进以使代码更具可读性。
#!/bin/bash

total=$(($total+1))
#!/bin/bash

total=0
max=0
while [[ "$max" -lt 2 ]]; do
    . scriptA.sh
    max=$total
    echo Max: $max
    sleep 1
done

打印:

  

最大:1   最大:2