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

#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 — нет, не переусердствуй; намного надежнее. 🙂