我想在ksh
shell 脚本中比较文件名字符串和文件掩码。您能纠正一下语法吗?
if [ "NPER20200422TEST.PTN" = "NPER*.PTN" ]
then
echo "File matched"
else
echo "File not matched"
fi
我想将我的文件字符串与给定的文件掩码相匹配。
答案1
答案2
在类似 Bourne 的 shell 中,包括ksh
,这就是该case
构造的用途:
case NPER20200422TEST.PTN in
(NPER*.PTN) echo "File matched";;
(*) echo "File not matched";;
esac
请注意,在 Bourne shell(一种历史 shell,如今已不再使用,尽管许多人一直sh
对它感到困惑)中,您必须省略(
s。在的 标准 (POSIX) 实现中允许使用或(*)
。*)
sh
答案3
您可以使用 an 打印您的语句echo
并将其通过管道传输到grep
:
if echo NPER20200422TEST.PTN | grep -q "NPER.*PTN"
then
echo "File matched"
else
echo "File not matched"
fi
grep -q
不会产生输出