Bash的功能——交互式Shell

有如下几种调用Bash进入交互式Shell的方式:

  • 没有任何非选项参数
$ bash
$ PS1=">> " # 此处进入了交互式的子Shell里
>> exit # 退出子Shell
exit
$
  • 用-s选项,但不能用-c选项. 这种方式也可以进入交互式Shell.
    -s选项后面的参数会作为位参传递给交互式Shell
$ bash -s a b c
$ echo $1 $2 $3
a b c
  • -i选项强制Shell以交互式方式运行
$ bash -i
$ PS1=">> " # 此处进入了交互式的子Shell里
>> exit # 退出子Shell
exit
$

判断当前Shell是交互式的方法

  • 用Shell特殊参数$-判断
    $- 扩展为在调用时,由set命令或由Shell本身设置的当前选项标志。交互式的Shell有-i选项
$ echo "$-"
himBHs
$ case "$-" in
> *i*)echo This shell is interactive ;;
> *)echo This shell is not interactive ;;
> esac
This shell is interactive
  • 用Bash变量PS1判断
    PS1变量只有在交互式Shell里才会被设置
$ if [ -z "$PS1" ]; then
>         echo This shell is not interactive
> else
>         echo This shell is interactive
> fi
This shell is interactive

你可能感兴趣的:(每天一点点)