#bash #shell #command
Вопрос:
Как мне назначить команду для запуска файла в переменную. У меня есть эта строка:
file=$(./file1.sh) #how to properly do this?
if ($0 == $file)
echo "good to go!"
Цель $file-проверить имя запускаемого сценария оболочки.
файл должен соответствовать команде, которую вы используете для запуска сценария оболочки (т. е. «./file.sh»)
Как мне правильно это сделать?
Комментарии:
1. Ха-ха-ха, я думаю, вы хотите сохранить значение внутри файловой переменной. Если это так. вы можете попробовать «файл=$(cat file1.sh)» так что ваша файловая переменная будет содержать ваше содержимое file1.sh. Если я ошибаюсь или понял что-то другое. Дайте мне знать
2. Пожалуйста, попробуйте shellcheck.net прежде чем просить о человеческой помощи.
3. Что-то вроде
if [[ $(basename $0) == file1.sh ]]
? Какова именно цель этого? Бывают случаи, когда мы хотим изменить поведение, основанное на том, что вызывающий сделал с $0, но они редки. В большинстве приложений $0-это имя самого скрипта, и вы обычно знаете это имя, не так ли?
Ответ №1:
Закрыть..
file="file1.sh"
if [[ "${0##*/}" == "$file" ]]; then
echo "good to go!"
fi
Комментарии:
1. Я бы сказал
[[ "${0##*/}" == "$file" ]]
, раздеть каталог. (Слишком много думаешь? 🙂2. @tshiono — нет, не переусердствуй; намного надежнее. 🙂