Специфика использования переменной BASH и условного IF

Кто-то может мне помочь?

for k in {1..10001} do if [ -d "$k" ] then cd $k/ testfile="grep Have aims.out | cut -c11-14" cd .. fi if [[ "$testfile" == "Have" ]] then mv $k $k_OK fi done 

Часть, в которой следует изменить название каталогов, не работает. Я думаю, что я неправильно использую переменную testfile.

One Solution collect form web for “Специфика использования переменной BASH и условного IF”

Значение вашего $testfile grep Have aims.out | cut -c11-14 grep Have aims.out | cut -c11-14 который определенно НЕ равен. Вот почему вы не входите во второй, if -block вообще.
Если вы хотите выполнить инструкцию grep и присвоить ее результат переменной, вам нужно заменить кавычки на обратные ссылки:

 testfile=`grep Have aims.out | cut -c11-14` 
  • Проверьте зависимости bash / shell
  • Как ответить YES автоматически командой cryptsetup luksFormat?
  • Обнаружение и ответ на ping в пользовательском пространстве
  • stty:: Недопустимый аргумент
  • Удалить все файлы в каталоге
  • Как я могу выйти из vi, используя сценарий оболочки?
  • Пропустить первую строку (или больше) в CSV-файле, который используется для переименования файлов
  • Почему я не могу выполнить этот скрипт?
  • Запросить пароль в POSIX-совместимой оболочке?
  • Как следить за действиями одного конкретного файла
  • как использовать grep -v в сценарии ожидания
  • Linux и Unix - лучшая ОС в мире.