Как исправить счетчик, который не работает в то время как цикл - PullRequest
0 голосов
/ 11 июня 2019

Я пытался решить проблему, из-за которой количество циклов должно уменьшиться, но ничего не работает.Мне нужно создать цикл while, который будет читать определенное количество раз.Например, если я ввожу в «files.txt -a 3» в терминале, мне нужно, чтобы мой цикл повторил «Enter in a string:» 3 раза.С моим кодом, приведенным ниже, я могу запустить его только один раз.Я не уверен, где поставить счетчик, и я могу сказать, что я поставил его везде.Внутри оператора if, внутри цикла for и внутри цикла while, но, похоже, ни один из них не работает.Число, которое введет пользователь, хранится в переменной $ count.

#!/bin/bash
if ["$1" = "-a" ]
then
  read in user String and save into file
fi

while [ "$count" > 0 ]
do
  for i in $count
  do

   if [ "-a" ]
   then
   read -p "Enter in a string: " userSTR
   echo userSTR >> files.txt
   count=$(($count - 1))
   fi

done
done

1 Ответ

0 голосов
/ 11 июня 2019

Для условного выражения вам нужно использовать [[ expression ]], например, это зациклится четыре раза:

count=4
while [[ $count > 0 ]] ; do
    echo "$count"
    count=$(( $count - 1 ))
done

Чтобы получить счетчик из аргумента командной строки, вы можете заменить присвоение count=4 вышес помощью разбора аргументов командной строки:

if [ $# -lt 2 ] ; then
    echo "Usage: $0 -a [count]"
    exit 1
fi
if [ "$1" = "-a" ] ; then
    shift
    count=$1
fi
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...