跳到主要内容

Bash

PS1

PS1 是 shell 的提示符,可以通过修改 PS1 来定制 shell 的提示符。

我只需要显示当前目录,当前分支即可。可以使用以下的 PS1:

~/.bashrc
parse_git_branch() {
git branch 2> /dev/null | sed -e '/^[^*]/d' -e 's/* \(.*\)/(\1)/'
}
export PS1='\[\033[01;32m\][\u@\h\[\033[01;37m\] \W\[\033[01;32m\]]$(parse_git_branch)\$\[\033[00m\] '

运行脚本的几种方式

  1. bash script.sh 或者 sh script.sh,这种方式会新建一个子 shell 来运行脚本,脚本中的变量不会影响当前 shell。
  2. source script.sh 或者 . script.sh,这种方式会在当前 shell 中运行脚本,脚本中的变量会影响当前 shell。

当一个脚本需要修改当前 shell 的环境变量时,需要使用第二种方式运行脚本。

同时将脚本输出输出到屏幕和文件

使用 tee 命令可以同时将输出输出到屏幕和文件。

echo "Hello, World" | tee output.txt

如果是 Python 脚本,可以使用以下方式:

python -u script.py | tee output.txt

一定要加上 -u 参数,否则 Python 会使用缓冲输出,导致 tee 无法实时输出。