Dan*_*eck 11
似乎bash是 Xubuntu 的默认 shell。
编辑.bashrc或.bash_profile(取决于您的系统配置)并查找以PS1=. 此行设置您的提示。
要添加最后一个命令的返回值,请将以下内容添加到该行:
`echo -n $?`
Run Code Online (Sandbox Code Playgroud)
所以它看起来像下面这样(我当前的提示,简化了):
PS1='\u in \w (`echo -n $?`)\n -> \$ '
Run Code Online (Sandbox Code Playgroud)
它看起来像这样,_作为光标:
danielbeck in ~ (0)
-> $ _
Run Code Online (Sandbox Code Playgroud)
或者,您可以使用环境变量PROMPT_COMMAND将返回代码添加到提示中:
export PROMPT_COMMAND='RET=$?; echo -n "($RET) "'
Run Code Online (Sandbox Code Playgroud)
这将(0)在您之前未修改的提示之前添加例如。
您可以通过添加\#到提示中来获得“计数器” :它是命令编号。更有用的可能是history number,它不是从 1 开始,但允许您通过输入感叹号来执行任何命令,后跟命令的历史编号:
984 $ foo
-bash: foo: command not found
985 $ !984
foo
-bash: foo: command not found
986 $ _
Run Code Online (Sandbox Code Playgroud)
经过一些额外的播放:
PS1='`RET=$?; if [ $RET != 0 ] ; then echo "rc $?"; fi`\n\u in `pwd`\n#\# !\! \$ '
Run Code Online (Sandbox Code Playgroud)
这只会在它自己的行上显示非零的返回值。命令编号和历史记录编号与您要输入的命令在同一行:
danielbeck in /Users/danielbeck/Downloads
#1 !984 $ foo
-bash: foo: command not found
rc 127
danielbeck in /Users/danielbeck
#2 !985 $ _
Run Code Online (Sandbox Code Playgroud)
该变量$?包含上次运行程序的退出代码。
ninth:~ sakkaku$ echo Hello World
Hello World
ninth:~ sakkaku$ echo $?
0
ninth:~ sakkaku$ cat asdasd
cat: asdasd: No such file or directory
ninth:~ sakkaku$ echo $?
1
Run Code Online (Sandbox Code Playgroud)
我认为您可以使用增量器获得“执行的命令数”
ninth:~ sakkaku$ echo $[numcommands++]
0
ninth:~ sakkaku$ echo $[numcommands++]
1
ninth:~ sakkaku$ echo $[numcommands++]
2
ninth:~ sakkaku$ echo $[numcommands++]
3
Run Code Online (Sandbox Code Playgroud)
然后您需要修改 .bashrc 中的 PS1/PS2 变量以更改提示。 这似乎是一个不错的指南(除了它建议修改 /etc/bashrc,我只会做 ~/.bashrc)。
| 归档时间: |
|
| 查看次数: |
4560 次 |
| 最近记录: |