Скрипт Bash / Shell в то время как заявление - PullRequest
0 голосов
/ 27 марта 2011

Я новичок в программировании оболочки ... в основном я новичок, но мне нужен простой скрипт для выполнения цикла while и выполнения сценария php. Я пробовал следующее:

!/bin/bash
i=0
 while[ i < 13 ]
  do
php /var/www/html/pos.php &
(( i++ ))
done

но по некоторым причинам синтаксис не очень хорош ... Я получаю строку ошибки 4: синтаксическая ошибка рядом с неожиданным токеном `do '

Ответы [ 5 ]

2 голосов
/ 27 марта 2011
!/bin/bash
i=0
while (( i < 13 ))
do
    php /var/www/html/pos.php &
    (( i++ ))
done
2 голосов
/ 27 марта 2011

Вы должны иметь пробел между while и левой скобкой [, и вам нужно поставить do в отдельной строке или использовать точку с запятой (обе эти ошибки являются довольно распространенными при написании циклов) , Кроме того, левая скобка [ эквивалентна человеческому тесту , который поддерживает -lt, но не <:

function doStuff() {
  local counter=0
  while [ $counter -lt 10 ]
  do
     echo $counter
     let counter=$counter+1
  done
}
doStuff

OR

function doStuff() {
  local counter=0
  while [ $counter -lt 10 ] ; do
     echo $counter
     let counter=$counter+1
  done
}
doStuff
1 голос
/ 27 марта 2011

альтернативно, вы можете использовать for loop

for((i=1;i<=13;i++))
do
  php /var/www/html/pos.php &
done

поскольку цикл for уже создает счетчик, вам не нужно объявлять счетчик вручную.

1 голос
/ 27 марта 2011

Полагаю, вы хотите сделать что-то вроде:

i=0; while (($i<10)); do i=$((i+1)); echo $i; done
1 голос
/ 27 марта 2011

не может видеть ваш код, но он должен быть таким

while [ $i -ne 3 ]
do
   echo "on number $i of 3"
   i=`expr $i + 1`
done
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...