Предоставление аргумента команде после замены

Я пытаюсь взять имя файла из папки ~/Pictures и предоставить его в качестве аргумента для команды nomacs . Имя файла содержит пробелы, поэтому я использую подстановку Bash в escape-пространства (я также хочу взять последний файл в папке).

Код:

 names=$(\ls ~/Pictures * | tac) SAVEIFS=$IFS IFS=$'\n' names=($names) IFS=$SAVEIFS screenshot=~/Pictures/${names[0]} screenshot=${screenshot// /\\ } nomacs $screenshot 

Пример имени файла: Screenshot from 2017-09-13 18-05-42.png

Проблема в том, что nomacs $screenshot не работает, но когда я выполняю nomacs Screenshot\ from\ 2017-09-13 18-05-42.png , он работает так, как ожидалось.

Должен ли я использовать специальную технику Bash для экранирования пробелов?

One Solution collect form web for “Предоставление аргумента команде после замены”

Из того, что я собираю из вашего скрипта, вы меняете вывод ls и выбираете первый элемент. Вот еще один способ сделать это с помощью bash:

 files=(~/Pictures/*) nomacs "${files[-1]}" 

Это заполняет массив с расширением glob ~/Pictures/* затем передает последний элемент в программу nomacs .

  • Повторение букв Backspace в терминале
  • Переводчик кода ANSI
  • Терминальные escape-последовательности: почему терминалы не сообщают, какие функции они поддерживают, вместо того, чтобы полагаться на terminfo?
  • Скрыть и отобразить курсор с помощью tput
  • Создать мигающий текст с эхо-символами
  • Как удалить ненужные символы из файла, сгенерированного командой script в linux
  • Помещение одной цитаты в имя файла
  • Вывод двойных кавычек для переменных в bash и qmake
  • ESC-q не работает в tmux с zsh
  • Понимание того, что происходит, когда я сбрасываю конечную последовательность символов с помощью Ctrl-v?
  • Может кто-нибудь объяснить некоторые из этих кодов эвакуации?
  • Interesting Posts

    Какова правильная компоновка символических ссылок, позволяющих совместно использовать совместно используемые библиотеки openssl 1.1.0 и 1.0.2?

    lshw перечисляет мой диск, но у него нет файла / dev

    В Linux разрешение «Write» эквивалентно «Выполнению» для каталогов?

    Получение кода выхода 139 во время работы UCF (во время постинсталляции dpkg)

    окончание bash очень неполное на centos 7

    Как другие процессы влияют на измерения, выполненные с помощью «времени»?

    Я хочу, чтобы обе клавиши управления были в качестве клавиши Super

    Преобразовать ascii-код в шестнадцатеричный в сценарии оболочки UNIX

    Solaris tar: «Не удалось создать символическую ссылку: не каталог»

    команда / opt / bin / date -date '-15 минут 2016-04-27T14: 14: 47' результат за много часов до указанного времени

    Замена шаблона соответствия совпадению с помощью sed

    Превышение объема памяти на сервере с помощью PHP

    Сервер Git с несколькими репозиториями

    Запретить / разрешить доступ пользователя к порту динамически

    чтение параллельной обработки из файла в цикле

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