И: "Почему этот конкретный script имеет этот результат?"
Из Получение исходного каталога Bash script из на основе некоторых фрагментов кода, предлагаемых пользователем l0b0 в его комментарий по этому вопросу, я использовал следующее для задания cron:
DIR=$(pwd)
if [ $CRON == "true" ]; then
# If the environment variable $CRON is set to true, we're probably in a cron job
if [ $PWD == "/" ]; then
# And if the current working directory is root, we're probably in a cron job
DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd && echo x)"
DIR="${DIR%x}"
fi
fi
Однако моя переменная каталога ($ DIR) каким-то образом заканчивается новой строкой после нее, что прерывает script в любое время, когда переменная $DIR используется для создания пути. Почему есть новая строка?
По общему признанию, я не слишком разбираюсь в нюансах Bash сценариев и подстановки команд. Возможно, я неправильно понял цель за l0b0 script.