在我的 Oracle Linux 机器中,我发现了一个/etc/profile
很难弄清楚的脚本块:
for i in /etc/profile.d/*.sh ; do
if [ -r "$i" ]; then
if [ "${-#*i}" != "$-" ]; then
. "$i"
else
. "$i" >/dev/null 2>&1
fi
fi
done
我的问题是 if 语句中的变量${-#*i}
和$-
. 这意味着什么?为什么要添加 else 语句来重定向输出?谢谢!