Специфика использования переменной 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` 
  • Удалить записи в файле, если одна и та же запись находится в главном файле
  • скрипт, в котором перечислены все файлы в каталоге и подкаталогах, отсортированных по размеру, перечисляя только имена файлов, а не полные пути
  • Как переместить файл, если имя папки содержит имя файла
  • Создание моей собственной функции cp в bash
  • Как закрыть список серверов, чтобы убедиться, что первый отключен, прежде чем отключать следующий?
  • Задача Cron в графическом интерфейсе
  • ifconfig -a получить необходимые данные grepping
  • Извлечение символов после определенного текста
  • Сценарий Stop bash с любым ключом
  • Как проверить, существует ли один или оба из двух файлов?
  • script: записывать оба кода выхода и выхода
  • Значение параметра не устраняется
  • Linux и Unix - лучшая ОС в мире.