false shell 判断_「Shell」- 判断字符串结尾 @20210121

时间:2025-02-15 08:08:28

下面围绕“判断字符串是否以.txt结尾”展开。转变一下也同样适用于“判断字符串是否以.txt开头”。

通用的方法

# 方法一、使用grep命令

#!/bin/sh

str="/path/to/"

# 使用if语句

if echo "$str" | grep -q -E '\.txt$'

then

echo "true"

else

echo "false"

fi

# 写成一行

echo "$str" | grep -q -E '\.txt$' && echo true || echo false

grep -q -E '\.txt$' <<< "$str" && echo true || echo false

# 方法二、使用expr命令

#!/bin/sh

str="/path/to/"

# 使用if语句

if expr "$str" : '.*\.txt$' &>/dev/null

then

echo "true"

else

echo "false"

fi

# 写成一行

expr "$str" : '.*\.txt$' &>/dev/null && echo true || echo false

# 方法三、使用case指令

#!/bin/sh

str="/path/to/"

case "$str" in

*.txt ) echo "true";;

* ) echo "false";;

esac

# 其他方法

还可以使用AWK、SED,这里就不再介绍了,方法和上面是类似的。

特定于Shell的方法

BASH

#!/bin/bash

# BASH中的正则表达式

[[ "/path/to/" =~ .*txt$ ]] && echo "true" || echo "false"

# BASH的特殊语法

[[ "/path/to/" = *txt ]] && echo "true" || echo "false"

参考文献