当我执行以下命令时:
cd /some/path/here
at -t 201409301100
ls -al
<CTRL-D>
at -lov
我得到以下输出:
========================
myusername.1411755840.a Mon Sep 30 11:00:00 CDT 2014
========================
cd /some/path/here
ls -al
是什么导致cd /some/path/here
命令出现?同一系统上的其他用户看不到此行为。
我在 AIX 6.1 中使用 KornShell。
我的.envfile
包含:
if [ -t 0 ]; then
case `who am i | awk '{print $1}'` in
'myusername')
#set the prompt to include the date and time
#set -o allexport
unset _Y _M _D _h _m _s
eval $(date "+_Y=%Y;_M=%m;_D=%d;_h=%H;_m=%M;_s=%S")
((SECONDS = 3600*${_h#0}+60*${_m#0}+${_s#0}))
typeset -Z2 _h _m _s
_tsub="(_m=(SECONDS/60%60)) == (_h=(SECONDS/3600%24)) + (_s=(SECONDS%60))"
#_timehm='${_x[_tsub]}$_h:${_m}'
#_timehms='${_x[_tsub]}$_h:$_m:${_s}'
_timedhms=$_Y'/'$_M'/'$_D" "'${_x[_tsub]}$_h:$_m:${_s}'
_hn=`hostname`
typeset -u _hn
_un=`whoami | awk '{print $1}'`
typeset -u _un
export PS1="$_timedhms
"'['$_un']'$_hn':${PWD#$HOME/} $ '
#set +o allexport
;;
*)
;;
esac
fi
答案1
at 作业在at
调用命令的目录中执行。
不同的实现以不同的方式实现这一点。碰巧你的方法是cd
在作业开始时、代码之前放置一个命令来实现这一点。
at
at 作业也会在与调用命令时相同的环境中执行,并使用相同的 umask。 AIX 以其他方式实现环境和 umask 保存(我不知道如何)。