bash while 循环使用 echo 作为循环计数器

bash while loop using echo as the loop counter

你好我有一个命令

echo $(ssh dema@10.0.1.100 'zfs list -o name -t snapshot | grep tank/dema@Daily_$(date +"%Y-%m-%d") | wc -l')

这个 returns 一个整数值我需要 while 遍历它但似乎无法弄清楚该由谁来做。

while echo $(ssh dema@10.0.1.100 'zfs list -o name -t snapshot | grep tank/dema@Daily_$(date +"%Y-%m-%d") | wc -l') -g 1; do

echo stuff

done

您好,您可以这样试试,

declare -i value
value=`echo $(ssh dema@10.0.1.100 'zfs list -o name -t snapshot | grep tank/dema@Daily_$(date +"%Y-%m-%d") | wc -l')`
while [ "$value" -gt 1 ]; do
    echo stuff
    value=`echo $(ssh dema@10.0.1.100 'zfs list -o name -t snapshot | grep tank/dema@Daily_$(date +"%Y-%m-%d") | wc -l')`
done

或者我们可以像这样使用它,

declare -i value
while : ; do
  value=`echo $(ssh dema@10.0.1.100 'zfs list -o name -t snapshot | grep tank/dema@Daily_$(date +"%Y-%m-%d") | wc -l')`
  [[ "$value" -gt 1 ]] || break
  echo stuff
done