Специфика использования переменной 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.

  • Правильно использовать бит setuid
  • Rsync ведет себя по-другому, если вызывается внутри скрипта
  • Что не так с моими заявлениями elif в этой игре с ножницами из каменной бумаги, которую я делаю
  • Как удалить файлы с пробелами в них в сценарии bash?
  • найти пользовательские папки
  • Почему сочетание «меньше» и «скрипт» прерывает окончания строк?
  • Удалить все файлы в каталоге
  • Написание сценария оболочки, чтобы предупредить меня о Mac OS X
  • 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` 
    Linux и Unix - лучшая ОС в мире.