Установить имя переменной в сценарии оболочки навсегда

Это должно работать в RHEL 5.3:

dmidecode --type processor

и искать Макс. Скорость и Текущая скорость info

-1
01.02.2019, 09:16
1 ответ

Строка $a="bar"должна дать вам сообщение об ошибке, говорящее

bash: foo=bar: command not found

Чтобы установить aв строку bar, используйте a="bar". Обратите внимание, что $a— это значение переменной a, а $a="bar"не имеет смысла.

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

  1. Сделайте aпеременной окружения.Это означает, что вы устанавливаете aвне скрипта и exportэто:

    export a="bar"
    

    Затем вы запускаете свой сценарий как обычно (его необходимо изменить, чтобы не перезаписывать значение a, унаследованное от среды, сначала ). Вы также можете использовать

    a="bar"./myscript.sh
    

    установить переменную только для скрипта (т. е. не делая ее переменной в вызывающей оболочке ).

  2. Заставьте скрипт принимать значение из командной строки, чтобы вы вызывали скрипт как

    ./myscript.sh "bar"
    

    Сценарий будет выполнять

    a="$1"
    

    , чтобы установить значение aиз аргумента командной строки. Здесь $1означает «первый аргумент командной строки».

Независимо от того, как вы это сделаете, вы также можете проверить, что значение "$a"является нормальным (, т. е. содержит действительные данные ), прежде чем использовать его.

2
28.01.2020, 05:08

Теги

Похожие вопросы