bash: команда cut ничего не производит (просто пустая строка)

У меня проблема с возможностью повторять часть строки.

Вот упрощенная версия:

t=no_1187985:/home/my.name/testing/no 

Я хочу, чтобы echo no_1187985 только так:

 tt=$(echo $t | cut -d":" -f 1) echo $tt 

Но это создает просто пустое пространство (и команда не найдена ошибка в моем реальном скрипте)

Если я изменил -f 1 на -f 2, он работает для второго поля, я не понимаю, почему не первый.

Вот часть моего фактического кода для контекста:

  while read line; do #echo $line #sleep 1 path=$(dirname "$line") #echo $path #mkdir -p $(echo $path | cut -d":" -f 2) inode= $(echo $path | cut -d":" -f 1) echo $inode #mv ~/deleted/$inode $(echo $line | cut -d":" -f 2); done < .temp 

Это попытка создать recyclebin .temp – это файл с именами разных файлов для восстановления. цикл просматривает каждую строку. Он воссоздает дерево каталогов, прежде чем перемещать файлы обратно в них. файлы в настоящее время хранятся в удаленной папке и имеют свой номер inode, прикрепленный к концу. Когда файл «восстановлен» (т.е. перемещен назад), inode удаляется из имени файла.

файл .temp содержит имя файла (вместе с оригиналом и inode), а исходное имя пути разделяется разделителем «:».

One Solution collect form web for “bash: команда cut ничего не производит (просто пустая строка)”

У вас не должно быть пробелов вокруг символа = для объявления переменной.

Сценарий 1:

  • inode = something – bash пытается запустить команду с именем inode с двумя аргументами.
  • Это эквивалентно высказыванию: inode "=" "something"

Сценарий 2:

  • inode =something – bash пытается запустить команду с именем inode с 1 аргументом (строка '=something' )
  • Это эквивалентно высказыванию: inode "=something"

Сценарий 3:

  • inode= something – bash пытается запустить команду с inode установленным в пустую строку в своей среде.
  • Это эквивалентно высказыванию: inode="" something

Примечание . Проверьте раздел 2.9.1 Простые команды из приведенной ниже справки.

Ссылка: командный язык командной строки

  • Повторяя что-то с несколькими кавычками и ключевыми символами (&, $,! И т. Д.),
  • Escape-символы из эха -э
  • эхо цветной текст с вкладками
  • Что означает echo -e \ e - как побег?
  • echo \\ * - bash backslash escape-поведение, оценивается ли он назад?
  • Транспортировка данных в FIFO с помощью EOFs каждую секунду
  • Почему не выводится текст, отправленный в эхо?
  • Как создать файл с несколькими строками из командной строки?
  • Как остановить «grep» от вырезания трубы
  • Echo to Serialport
  • как `echo` 'отформатировал' man-страницу некоторой команды в текстовый файл
  • Interesting Posts

    Автоматическая установка модуля PAM

    Являются ли данные, проходящие через трубу конфиденциальными?

    Выполнить команду в нескольких активных оболочках одновременно

    Как клонировать и распространяться на новый диск во FreeBSD?

    Назначить результат измерения цикла for с помощью / usr / bin / time в переменной

    Использование mutt для извлечения электронной почты из hotmail?

    Bash: срез позиционных параметров

    используя команду dd для папки, но удаленные элементы не отображаются удалены

    Как дождаться загрузки зоны Solaris (первый раз)

    grub2 ушел каждый раз, когда я загружаю Windows 10

    Как получить PID подоболочки в Korn Shell (эквивалент $ BASHPID)

    Linux Mint 18.1 имеет только 4 ГБ оперативной памяти, но 8 ГБ распознаются

    Как запустить это в sudo?

    Мониторинг данных последовательного порта между виртуальными портами

    Как перенести файл и изменить его имя без повторного ввода имени и просто добавить новые символы

    Linux и Unix - лучшая ОС в мире.