Я извлек часть сценария оболочки в другой сценарий оболочки, и по какой-то причине после вызова подскрипта подстановка команд перестает работать. Я не могу представить, что это что-то в нижнем сценарии, но я также не вижу, что я делаю неправильно.
делаю ли я:
dirname "$0" # works
echo "`dirname "$0"`" # works
echo "$(dirname "$0")" # works
cat <<< "`dirname "$0"`" # works
cat <<< "$(dirname "$0")" # works
"$(dirname "$0")"/setup_buildroot.sh "$BUILDROOT" # call the sub-script
dirname "$0" # works
echo "`dirname "$0"`" # empty string
echo "$(dirname "$0")" # empty string
cat <<< "`dirname "$0"`" # crash
cat <<< "$(dirname "$0")" # crash
or i do:
dirname "$0" # works
echo "`dirname "$0"`" # works
echo "$(dirname "$0")" # works
cat <<< "`dirname "$0"`" # works
cat <<< "$(dirname "$0")" # works
"`dirname "$0"`"/setup_buildroot.sh "$BUILDROOT" # call the sub-script
dirname "$0" # works
echo "`dirname "$0"`" # empty string
echo "$(dirname "$0")" # empty string
cat <<< "`dirname "$0"`" # crash
cat <<< "$(dirname "$0")" # crash
dirname работает нормально, но обратная кавычка и $()
перестают работать. Подстановка команды просто возвращает пустую строку.
РЕДАКТИРОВАТЬ: удаление всех двойных кавычек ""
не имеет эффекта
EDIT2: явное выполнение bash при вызове индекса не имеет никакого эффекта
EDIT3: сохранение "$(dirname "$0")"
в переменную и использование этого не имеет никакого эффекта
EDIT4: добавление тех же команд echo
в индекс показывает, что в индексе все в порядке.
EDIT5: по запросу вывод скрипта
/home/jayen/rep
/home/jayen/rep
/home/jayen/rep
/home/jayen/rep
/home/jayen/rep
#setup_buildroot.sh output here
/home/jayen/rep
bash: syntax error near unexpected token `newline'
bash: syntax error near unexpected token `newline'