在Group Growth
Black 10%
Black -1%
Blue 0%
Blue 5%
Blue 5%
Red 2%
Green 2%
Green 9%
之后,我希望在k-shell历史列表中同时拥有用户名和时间戳。我有命令行:
sudo su -
使用此命令,我希望如下:
trap 'who am i|cut -d" " -f1 |tr "\n" " " && date|read -s' debug
在历史列表中。但是它仅显示UserName Tue Oct 13 15:37:06 CDT 2015
这似乎只是执行第二个动作Tue Oct 13 15:37:06 CDT 2015
,并忽略或覆盖第一个动作。
如何在历史列表中包含用户名和时间戳?
注意到需要用户名的原因是多个用户对同一服务用户具有相同的模拟权。
答案 0 :(得分:1)
我找到了一个简单的解决方案:
使用一行在服务用户的主目录中创建 trapme 文件:
我是谁? cut -d“” - f1 | tr“\ n”“”&&日期
在.profile中添加一行:
陷阱'〜/ trapme | read -s'debug这将在具有真实用户登录和时间戳的命令之后创建一行。
答案 1 :(得分:0)
这对我有用:
$ trap 'echo this; echo that' INT
$ sleep 10
^Cthis
that
$
如果您需要复杂的命令,通常的方法是使用ksh -c 'compound | pipe | command'
但引用时会非常棘手。
(至少在bash中,子shell能够调用父shell的函数,因此你可以像评论者建议的那样定义一个函数。不用ksh
来测试它。)
<强>更新强>
这对我有用:
trap 'echo $(whoami|cut -d" " -f1 |tr "\n" " " && date)' INT
考虑做
trap 'echo "$(id -un) $(date)"' INT
甚至
trap 'date "+$(id -un) %DT%T"' INT
等
答案 2 :(得分:0)
将要传递给其的输出的所有命令放到read
组中:
trap '{ who am i|cut -d" " -f1 |tr "\n" " "; date; }|read -s' DEBUG