en fedora solo hay un comando useradd
, adduser
es solo un enlace simbólico a useradd.
puedes comprobarlo con el siguiente comando:
ls -ld /usr/sbin/adduser
la salida del comando:
[root@fedora28 ~]# ls -ld /usr/sbin/adduser
lrwxrwxrwx. 1 root root 7 Feb 6 05:37 /usr/sbin/adduser -> useradd
Вот пример
#!/bin/bash
CURR_DIR=$(dirname $(readlink -f $0))
. ${CURR_DIR}/set-env-script.sh
# Add here your code...
Ваш подход не работает по двум причинам.
Прежде всего, давайте предположим, что ваш env _script.sh содержит оператор для установки переменной,например
X=5
Если вы выполните оператор
$(cat env_script.sh)
вы просите bash запустить содержимое этого скрипта как команды, т.е. выполнить программу со смешным названием X=5
.
Таким образом, правильным способом внесения определений в вашу оболочку будет
. env_script.sh
Вторая проблема заключается в том, что, согласно вашему письму, вы хотите распространить переменную на «скрипт вызывающего». Не совсем понятно, что именно вы имеете в виду под «сценарием вызывающего», но если этот сценарий вызывающего, в свою очередь, не является источником сценария, который вы собираетесь написать, а вызывает его как дочерний процесс, то технически нет способа передать переменные непосредственно вызывающей стороне.
Короче говоря, если оболочке требуется установка переменных, а настройки определены в отдельном файле, для их импорта требуется команда source .