小编Lha*_* DL的帖子

对单词列表使用 if 语句

所以我有一个程序(比如,programA),它会给我一个输出,例如:yes, no, maybe, probably, possibly, impossible, banana

我想制作一个脚本,它可以根据该输出执行某些操作,无论它是什么。假设我只需要考虑yes,maybebanana

到目前为止,我会做的是case像这样使用:

case $program_output in
  yes) echo "good word: $program_output" ;;
  maybe) echo "good word: $program_output" ;;
  banana) echo "good word: $program_output" ;;
  *) echo "bad word: $program_output" ;;
esac
Run Code Online (Sandbox Code Playgroud)

但最近我在摆弄这个if语句,发现我可以像这样更快地做到这一点:

if [[ "yesmaybebanana" =~ ${program_output} ]]; then
  echo "good word: ${program_output}"; else echo "bad word: ${program_output}";
fi
Run Code Online (Sandbox Code Playgroud)

有什么理由我不应该为此使用该if语句吗?这是一种$program_output不能有空格的情况,并且它是可以输出的有限单词列表。

bash pattern-matching

8
推荐指数
3
解决办法
899
查看次数

用bash在终端的某个空间打印一些东西

我制作了一个脚本,每 10 分钟在命令行上告诉我笔记本电脑的电池寿命,但问题是它在命令行上显示了它。我想让它打印在例如终端的右上角。

那可能吗?

示例:这是终端窗口:

=====================
|texttexttexttexttex|
|t                  |
|moretext           |
|somethingsomething |
|me@me:~$...        |
=====================
Run Code Online (Sandbox Code Playgroud)

在命令之后,这是结果:

=====================
|texttexttextBAT-50%|
|t                  |
|moretext           |
|somethingsomething |
|me@me:~$...        |
=====================
Run Code Online (Sandbox Code Playgroud)

所以它会覆盖那里写的任何内容。

bash terminal

8
推荐指数
2
解决办法
458
查看次数

标签 统计

bash ×2

pattern-matching ×1

terminal ×1