sh - 在POSIX sh中检查字符串是否以 "!"开头

标签 sh

尝试根据行是否以“!”开头创建条件。

注意:这不是重击

#!/bin/sh

if [ $line = "!*" ] ;
then
    echo "$0: $line has !"
else
    echo "$0: $line has no !"
fi

最佳答案

POSIX test 中,=仅执行精确的字符串比较。

请改用case语句。

case $line in
  "!"*) echo "$line starts with an exclamation mark" ;;
  *)    echo "$line does not start with an exclamation mark" ;;
esac

如果您真的想将其放在if中,则可以执行以下操作:
if case $string in "!"*) true;; *) false;; esac; then
  echo "$line starts with an exclamation mark"
else
  echo "$line does not start with an exclamation mark"
fi

关于sh - 在POSIX sh中检查字符串是否以 "!"开头,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48913826/

相关文章:

python - Vim:警告:不输出到终端

java - 如何自动创建批处理/shell 脚本来运行 Java 控制台应用程序?

unix - 从 unix sh 脚本在后台运行进程

mysql - 使用 bash 从文件中插入和编辑 mysql 行

linux - 为什么 bash/echo 在此 CMake 脚本中不起作用?

Android shell 脚本删除一个目录中的所有文件和文件夹,除了一个

bash - 对 boolean 变量的操作

bash - 启动/停止tomcat服务器的shell脚本

linux - 如何使用 bash 脚本从多个服务器获取 java 版本/spark 版本/pip 列表和 anaconda 列表

linux - 在行的中间添加文本