【发布时间】:2021-09-16 00:42:54
【问题描述】:
所以我正在尝试使用我的 shell 脚本设置环境变量。该脚本从用户那里获取一些输入,然后我必须在环境变量中设置这些输入。我同时使用了两个 shell 脚本,但出现权限被拒绝错误。
脚本 1
DEFAULT_NAME="sample"
read -p "Enter your Name: [$DEFAULT_NAME]: " USER_NAME
if [ -z "$USER_NAME" ]
then
USER_NAME=$DEFAULT_NAME
else
USER_NAME=$USER_NAME
fi
source setEnv.sh
脚本 2
echo -e "export NAME=${USER_NAME}" >> /etc/profile.d/nameenv.sh
【问题讨论】:
-
您的第二个脚本必须以 root 身份运行,因为
/etc/profile.d/nameenv.sh只能由 root 编写。 -
正如 cmets 对 @David 的回答所指出的,这似乎是 XY Problem 的一个示例。没有人能弄清楚你要解决什么问题。请注意,在类似 UNIX 的操作系统(例如 Linux)中,环境变量对每个进程都是私有的,并且从它们的父进程继承。
标签: linux bash environment-variables