我想知道是否有任何方法可以在每次按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]}] $> ";
}发布于 2014-03-11 18:11:39
尝试使用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: 发布于 2014-03-11 18:24:26
它和你的不一样,但你可以试试这个:
我编辑了我的.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查看。
注意:请记住转义$。
https://stackoverflow.com/questions/22332710
复制相似问题