Ошибка сценария Bash:./тест: строка 5: UID: переменная только для чтения

Используйте третье лицо средство рассылки LAN, возможно, хороший выбор заменить сеть отправляет команду. Выезд сравнение между сетью отправляет по сравнению со средством рассылки LAN.

9
задан 21 April 2011 в 00:32
2 ответа

Это - хорошая идея использовать строчные переменные в Ваших сценариях оболочки, поскольку прописные переменные обычно резервируются для внутренностей оболочки. (Переменные среды являются исключением к этому, но должны действительно рассматриваться тот же путь как вещи с особыми значениями, которые Вы не должны произвольно изменять, не понимая то, что Вы делаете.) В этом случае, bash наборы $UID к Unix uid это работает под и не позволит этому быть измененным или переменная, которая будет использоваться для чего-либо еще. Оболочки кроме bash (sh может быть dash или некоторая другая оболочка на некоторых платформах), может не использовать $UID тот путь, и если bash был создан для работы в режиме эмуляции Оболочки Bourne при вызове как sh (который является значением по умолчанию, но много дистрибутивов Linux отключают это), оно не будет рассматривать $UID как особенный также.

17
ответ дан 2 December 2019 в 22:22

UID зарезервированная переменная системы с информацией об идентификаторе пользователя, который Ваш сценарий выполняет как. Необходимо бояться использовать стандартные имена переменной, которые могла бы использовать система. Можно использовать env получить список того, что в настоящее время устанавливается. Не изменяйте ни одного из тех. Вы могли бы также погуглить имена переменной, чтобы видеть, поднимаются ли они в других пользователях перед продолжением их.

В этом случае использование нижнего регистра, вероятно, решит Вашу проблему с тех пор, только прописные варианты резервируются, но Вы могли также сделать свои переменные уникальными путем называния их чем-то как $input_uid, таким образом, ясно, что значение прибыло от входа до сценария. Это сделает Ваш код легче поддержать в конечном счете.

5
ответ дан 2 December 2019 в 22:22

Теги

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