Кавычка = $ (...) присваивает любые выходные данные переменной с именем кавычки и может быть использована позже в скрипте как кавычка ИЛИ $ цитируется ИЛИ "$ {цитируется" ИЛИ $ цитируется"
'|'char называется 'pipe' в unix / linux, и он соединяет выходные данные предыдущей команды для подачи в следующую команду.
Таким образом, вы просто разбираете скрипт по 1 части за раз и смотрите, что он делает,
quoted=$(
# I would execute below by itself first
echo "$NAUTILUS_SCRIPT_SELECTED_FILE_PATHS"
# then add on this piped program to see how data gets transformed
| awk 'BEGIN { FS = "\n" } { printf "\"%s\" ", $1 }'
# then add this
| sed -e s#\"\"##
# the capturing of the output to the var 'quoted' is the final step of code
)
# you **cannot** copy paste this whole block of code and expect it to work ;-)
Я не знаю, что должно быть в $ NAUTILUS_SCRIPT_SELECTED_FILE_PATHS, так что этотрудно показать вам здесь.И, эта переменная не определена ни в одном из указанных здесь кодов, поэтому вы можете получить пустую строку только при echo
ее значении.Будьте готовы провести некоторое исследование о том, как установить это значение И каковы правильные значения.
Также я заметил, что ваш код «префиксирован» как #!/bin/sh
.Если это действительно / bin / sh, то подстановка команд, такая как quoted=$(....)
, не будет работать и должна выдать сообщение об ошибке.Вероятно, ваша система действительно использует bash для / bin / sh.Вы можете устранить любую возможную путаницу в будущем (при переходе на систему, в которой / bin / sh = оболочка bourne), изменив 'shebang' на #! /bin/bash
.
Надеюсь, это поможет.