linux – 提示自定义:如何检测何时没有tty

linux – 提示自定义:如何检测何时没有tty,第1张

概述我有一个带颜色的自定义提示符(使用tput),每次我在服务器中启动非交互式会话时,都会出现一堆错误. 例如,如果我开始这样的非交互式会话: ssh root@hostname6 "echo 'hello' ; echo $TERM" 我得到的输出是: helloxtermtput: No value for $TERM and no -T specifiedtput: No value fo 我有一个带颜色的自定义提示符(使用tput),每次我在服务器中启动非交互式会话时,都会出现一堆错误.
例如,如果我开始这样的非交互式会话:
ssh root@hostname6 "echo 'hello' ; echo $TERM"

我得到的输出是:

helloxtermtput: No value for $TERM and no -T specifIEdtput: No value for $TERM and no -T specifIEdtput: No value for $TERM and no -T specifIEdtput: No value for $TERM and no -T specifIEdtput: No value for $TERM and no -T specifIEdtput: No value for $TERM and no -T specifIEdtput: No value for $TERM and no -T specifIEdstdin: is not a tty

因此,即使会话是非交互式的,$TERM变量也具有值.

我需要检测什么条件才能启动非交互式shell时省略提示自定义部分?

解决方法 在对PS1进行分配时评估tput命令.由于在启动ssh会话时处理启动文件,因此即使会话不是交互式的,也会进行分配.您可以测试它,只在实际开始交互式会话时进行分配.
if [[ $- =~ i ]]then    # set PS1 using tputelse    # set a plain PS1 (or use hard-coded escape sequences)fi
总结

以上是内存溢出为你收集整理的linux – 提示自定义:如何检测何时没有tty全部内容,希望文章能够帮你解决linux – 提示自定义:如何检测何时没有tty所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/1039287.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-24
下一篇 2022-05-24

发表评论

登录后才能评论

评论列表(0条)

保存