交互式shell与非交互式shell

交互式shell会通过tty从tty上读取数据,一般脚本为非交互式(不需要从tty读取数据)。

非交互式的shell仍然可以访问它的tty.如下所示:

#将读取到的内容输出

#!/bin/bash
PROMPT='$ '
while :
do
    echo -n "$PROMPT"
    read line
    echo "$line"
done

测试一个脚本是否运行在交互式shell的方法如下:

#!/bin/bash

if [ -z $PS1 ]
then
    echo "运行在交互式shell"
else
    echo "运行在非交互式shell"
fi

使用#!/bin/bash -i可以强制脚本运行在交互模式下。慎用,可能会产生各种古怪行为。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容