首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Unix如何具有随机更改的提示符

Unix如何具有随机更改的提示符
EN

Stack Overflow用户
提问于 2014-03-11 17:52:57
回答 2查看 229关注 0票数 2

我想知道是否有任何方法可以在每次按Enter时更改提示符,比如:

代码语言:javascript
复制
[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命令,但是我需要这样做:

代码语言:javascript
复制
source ~/.zshrc

否则我不会改变我的提示。

有什么想法吗?

编辑:目前我有:

代码语言:javascript
复制
PROMPT="[jtouzea - $RANDOM] $> "

在我的.zshrc里

EDIT2:我使用zsh,所以不幸的是,PROMPT_COMMAND似乎不起作用

EDIT3:这是我的最终代码,既然问题已经解决了:

代码语言:javascript
复制
function precmd()
{
    sentence[1]="much prompt";
    sentence[2]="such style";
    sentence[3]="wow";
    nb=$[$RANDOM % 3 + 1];
    PROMPT="[jtouzea - ${sentence[$nb]}] $> ";
}
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-03-11 18:11:39

尝试使用PROMPT_COMMAND钩子:

代码语言:javascript
复制
PROMPT_COMMAND() { randPromptNum=$[ $RANDOM % 3 ]; PS1=${POSSIBLE_PROMPTS[$randPromptNum]};}

对于zsh,必须使用precmd而不是PROMPT_COMMAND

在使用此操作之前,必须使用所有可能的提示设置一个变量:

代码语言:javascript
复制
POSSIBLE_PROMPTS[0]="such prompt: "
POSSIBLE_PROMPTS[1]="much style: "
POSSIBLE_PROMPTS[2]="wow: "

如果希望调整提示的数量,请记住编辑% 3

编辑-在cygwin上的结果

代码语言:javascript
复制
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: 
票数 2
EN

Stack Overflow用户

发布于 2014-03-11 18:24:26

它和你的不一样,但你可以试试这个:

我编辑了我的.kshrc文件如下:

代码语言:javascript
复制
PS1="Look, it's random: \$RANDOM  \$ "

然后获取该文件,并多次按Enter:

代码语言:javascript
复制
/home/user  $ . .kshrc
Look, it's random: 2155  $
Look, it's random: 6032  $
Look, it's random: 13065  $

将所有短语放入文本文件或数组中,然后使用$RANDOM查看。

注意:请记住转义$

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22332710

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档