我想知道如何限制它作为参数接收的文件类型,也就是说,如果输入的不是 .txt 文件,程序结束。
这是我到目前为止所拥有的:
#!/bin/bash
if test "$1" = "" ; then
echo "Hay que introducir un argumento que sea un archivo de texto para poder ejecutar este guión"
exit 1
else
if [ -f "$1" ]; then
echo "El fichero sí existe."
cuenta=$(cat "$1" | wc -m)
echo Hay $cuenta palabras en $1
else
echo "El argumento no es un fichero"
exit 2
fi
fi
要运行脚本,我执行以下操作:
$ chmod 777 cuatro.sh
$ ./cuatro.sh
如果您只想查看文件扩展名,可以使用正则表达式:
我认为你的问题是:
我该怎么做才能限制文件类型
如果您只查看扩展名,您可以收到任何不是文本文件的重命名文件...
你可以做类似这样的事情:
您还可以“查看”其他类型的文件...您可以查看完整列表:
只需从文件中提取扩展名,然后查看其值:
我在这里使用比较
[
而不是[[
,因为后者是 Bash 独有的,而前者更通用,因为它由 POSIX 定义。如果你想要一个简单的方法,你可以使用file命令
示例(我有 2 个文件)
第一的:
第二:
如果我在他们身上制作一个“文件”,我会得到: