我想知道每次按Enter时是否有任何改变提示的方法,例如:
[jtouzea - such prompt] $>
[jtouzea - much style] $> ls -l
total 0
drwx------+ 5 jtouzea 2013 170 Mar 11 16:50 Desktop
drwx------+ 2 jtouzea 2013 68 Mar 11 16:49 Documents
drwx------+ 2 jtouzea 2013 68 Mar 11 16:58 Downloads
drwxr-xr-x@ 26 jtouzea 2013 884 Mar 11 17:20 Library
drwx------+ 2 jtouzea 2013 68 Mar 11 16:50 Movies
drwx------+ 2 jtouzea 2013 68 Mar 11 16:50 Music
drwx------+ 2 jtouzea 2013 68 Mar 11 16:50 Pictures
drwxr-xr-x+ 2 jtouzea 2013 68 Mar 11 16:50 Public
[jtouzea - wow] $> echo "test"
test
[jtouzea - 10/10] $>
我已经找到了允许这样做的$ RANDOM命令,但我需要这样做:
source ~/.zshrc
否则我不会改变我的提示。
有什么想法吗?
编辑: 目前我有:
PROMPT="[jtouzea - $RANDOM] $> "
在我的.zshrc
中EDIT2: 我使用zsh,所以不幸的是,PROMPT_COMMAND似乎无法正常工作
EDIT3: 这是我的最终代码,现在问题已经解决了:
function precmd()
{
sentence[1]="much prompt";
sentence[2]="such style";
sentence[3]="wow";
nb=$[$RANDOM % 3 + 1];
PROMPT="[jtouzea - ${sentence[$nb]}] $> ";
}
答案 0 :(得分:2)
尝试使用PROMPT_COMMAND
挂钩:
PROMPT_COMMAND() { randPromptNum=$[ $RANDOM % 3 ]; PS1=${POSSIBLE_PROMPTS[$randPromptNum]};}
对于zsh,您必须使用precmd
代替PROMPT_COMMAND
。
在使用此功能之前,必须设置一个包含所有可能提示的变量:
POSSIBLE_PROMPTS[0]="such prompt: "
POSSIBLE_PROMPTS[1]="much style: "
POSSIBLE_PROMPTS[2]="wow: "
如果您想调整可能的提示数量,请记得编辑% 3
。
编辑 - 关于cygwin的结果
much style: echo hi
hi
such prompt: echo blah
blah
much style: pwd
/usr/bin
such prompt: yes y | head
y
y
y
y
y
y
y
y
y
y
wow: echo foo
foo
such prompt:
答案 1 :(得分:0)
它与你的壳不一样,但你可以试试这个:
我编辑了我的.kshrc文件:
PS1="Look, it's random: \$RANDOM \$ "
然后获取文件,并多次按Enter键:
/home/user $ . .kshrc
Look, it's random: 2155 $
Look, it's random: 6032 $
Look, it's random: 13065 $
将所有短语放在文本文件或数组中,然后使用$ RANDOM查看。
注意:请记住逃避$
。