无法识别永久环境变量
Permanent Env variable not recognised
我在 /etc/profile.d/script.sh 中放置了一个脚本,在 SSH 连接时检查用户是否在他们的环境变量中设置了 'GIT_AUTHOR_NAME' 和 'GIT_AUTHOR_EMAIL' ~/.profile 文件。
如果没有,它会要求输入这些详细信息。我遇到的问题是,即使存在 Env 变量,脚本也会不断要求输入详细信息。这就是 /etc/profile.d/script.sh 的样子:
if grep -Fxq "GIT_AUTHOR_NAME" /$PWD/.profile
then
echo Git details already known > /dev/null
else
echo "To make sure your commits are shown under your name, you have to enter your Git details once."
read -p "Enter your Git author name: " gituser
echo export GIT_AUTHOR_NAME="$gituser" >> /$PWD/.profile
read -p "Enter your Git e-mail address: " gitemail
echo export GIT_AUTHOR_EMAIL="$gitemail" >> /$PWD/.profile
echo "Your git name "$gituser" and e-mail "$gitemail" are now saved as environment variables in your .profile file."
fi
这与某种子脱壳有什么关系吗?我尝试了各种检查环境变量是否设置的差异。
您正在使用 -x
和 grep;除非我记错了,那
"Select only those matches that exactly match the whole line"
(来自 man grep
)。
我怀疑它是该行的开头,也许是
if grep -q "^GIT_AUTHOR_NAME" /$PWD/.profile
或者,如果有任何 export
ing 正在进行,更广泛的正则表达式:
if grep -Eq "^[[:space:]]*(export)[[:space:]]*GIT_AUTHOR_NAME[[:space:]]*=" /$PWD/.profile
我在 /etc/profile.d/script.sh 中放置了一个脚本,在 SSH 连接时检查用户是否在他们的环境变量中设置了 'GIT_AUTHOR_NAME' 和 'GIT_AUTHOR_EMAIL' ~/.profile 文件。
如果没有,它会要求输入这些详细信息。我遇到的问题是,即使存在 Env 变量,脚本也会不断要求输入详细信息。这就是 /etc/profile.d/script.sh 的样子:
if grep -Fxq "GIT_AUTHOR_NAME" /$PWD/.profile
then
echo Git details already known > /dev/null
else
echo "To make sure your commits are shown under your name, you have to enter your Git details once."
read -p "Enter your Git author name: " gituser
echo export GIT_AUTHOR_NAME="$gituser" >> /$PWD/.profile
read -p "Enter your Git e-mail address: " gitemail
echo export GIT_AUTHOR_EMAIL="$gitemail" >> /$PWD/.profile
echo "Your git name "$gituser" and e-mail "$gitemail" are now saved as environment variables in your .profile file."
fi
这与某种子脱壳有什么关系吗?我尝试了各种检查环境变量是否设置的差异。
您正在使用 -x
和 grep;除非我记错了,那
"Select only those matches that exactly match the whole line"
(来自 man grep
)。
我怀疑它是该行的开头,也许是
if grep -q "^GIT_AUTHOR_NAME" /$PWD/.profile
或者,如果有任何 export
ing 正在进行,更广泛的正则表达式:
if grep -Eq "^[[:space:]]*(export)[[:space:]]*GIT_AUTHOR_NAME[[:space:]]*=" /$PWD/.profile