Получение ошибки со сном и аргументом в sh-скрипте

Я делаю что-то вроде этого

#!/bin/bash END=3 time_w = 1 for ((i=1;i<=END;i++)); do # do something sleep time_w done 

но я получаю

 sleep: invalid time interval 'time_w' 

2 Solutions collect form web for “Получение ошибки со сном и аргументом в sh-скрипте”

Вы допустили две ошибки:

  • В bash не должно быть пробелов вокруг = в объявлении переменной, поэтому декларация должна быть:

     time_w=1 
  • В команде sleep time_w вы должны принять значение переменной time_w то есть "$time_w" , а не самой переменной:

     sleep "$time_w" 

Вам нужно использовать $time_w . Вам нужны переменные $ перед переменными bash если они не входят в арифметические выражения ( ((...)) ).

 #!/bin/bash END=3 time_w=1 for ((i=1;i<=END;i++)); do # do something echo "$i sleeping for $time_w" sleep "$time_w" done 
  • Использование MPI с .sh скриптом?
  • Сценарий для копирования файла на удаленный хост и его переименования
  • bash - Функция escape-символа?
  • Как перемещать или копировать список файлов, на которые ссылается файл csv, в новую папку
  • Как я могу найти и заменить только в том случае, если совпадение составляет целое слово?
  • Shell script - Не удалось найти 'fi' для этого 'if'
  • Bash Script - запуск удаленного X-перенаправленного приложения
  • Почему я получаю сообщение об ошибке «print_unicode: строка 9: printf: отсутствует символ Unicode для Unicode 0187» с этим скриптом
  • Как я могу группировать числа в файле
  • Длительный сценарий прекращает отправку вывода в файл
  • Почему этот скрипт рыбы не запускается из пусковой установки?
  • Bash - ненулевые аргументы для оператора (массив)
  • Interesting Posts
    Linux и Unix - лучшая ОС в мире.