我有一个需要两个参数(文件名和 MD5hashval)的脚本。我可以使用 md5sum test.sh 提取 MD5sum 的十六进制输出 | grep -om1 '^[0-9a-f]*.' 出于某种原因,从脚本调用相同的 cmd 时会失败。检查传递给 Bash 脚本的命令行参数的最佳方法是什么?代码如下所示:
#!/bin/bash
while getopts ":f:s" opt; do
case $opt in
f)
FILENAME=`echo $OPTARG | sed 's/[-a-zA-Z0-9]*=//'`
echo ${FILENAME}
;;
s)
MD5SUM=`echo $OPTARG | grep -om1 '^[0-9a-f]*'`
echo $MD5SUM
;;
\?)
echo "Invalid option: -$OPTARG" >&2
exit 1
;;
:)
echo "Option -$OPTARG requires an argument." >&2
exit 1
;;
esac
done