2016-02-23 2 views
-1

test.sh содержит:Установить переменные в Баш скрипт

A=$1 
B=$2 

Я установил test.sh для CHMOD 777

Я начал сценарий с 2-мя параметрами:

./test.sh first last 

Затем я проверил его набрав:

echo "FirstVar: $A SecondVar: $B" 

Результат:

"FirstVar: SecondVar: " 

Что я сделал не так?

+1

Ты ничего плохого не делают. Ваш код работал так, как предполагалось (установка переменных valid * в объеме используемого интерпретатора). –

+1

Независимо от того, что вы пытаетесь выполнить, ваши исполняемые файлы, доступные для записи всем, у кого есть доступ к системе, являются серьезной проблемой безопасности. ** Возможно, попробуйте 'chmod 755'. – tripleee

ответ

1

При запуске сценария, как это:

./test.sh whatever 

Bash запускает еще один экземпляр оболочки, которая интерпретирует команды в сценарии. Если вы хотите установить переменные в текущей оболочке, вы должны использовать команду source или точку (.). В этом случае команды в скрипте будут выполняться непосредственно в текущей оболочке.

source test.sh 

или просто

. test.sh 
Смежные вопросы