我的意思是,在~/.profile
中,函数doit
会在用户登录时说Welcome
,但在用户稍后执行doit
时会说出其他字词。
doit() {
if some_test_here; then
echo "Running within ~/.profile. Welcome."
else
echo "Called by user."
fi
}
doit
我认为~/.profile
在Mac上对于~/.bash_profile
在Linux上更好。所以我以~/.profile
为例。
答案 0 :(得分:0)
两种方法是传递参数或检查环境。
使用仅由.profile
中的呼叫使用的参数。
doit () {
if [ "${1:-onlogin}" -eq onlogin ]; then
echo "Running from .profile"
else
echo "Called by user"
fi
}
doit onlogin # from .profile
doit # ordinary call
检查环境以查找.profile
设置的变量doit () {
if [ "${_onlogin}" ]; then
echo "Running from .profile"
else
echo "Called by user"
fi
}
onlogin=1 doit # from .profile; value can be any non-empty string
doit # ordinary call