我正在尝试做类似这样的事情,编写一个脚本以执行备份操作,如果备份失败。我将环境作为脚本的参数输入。
我不确定如何验证 $1 只包含一些预定义的值。 预定义的值应该是 tst、prd、qa、rpt。 有人可以提供帮助吗?
我不确定如何验证 $1 只包含一些预定义的值。 预定义的值应该是 tst、prd、qa、rpt。 有人可以提供帮助吗?
#!/bin/bash
ENVIRONMENT=$1
BACKUPDATE=$(date +"%d_%m_%Y")
BACKUPFILE="$ENVIRONMENT".backup."$BACKUPDATE".tar.gz
if [ $1 == "" ]
then
echo "No environment specified"
exit
elif [ -f "$BACKUPFILE" ]; then
echo "The file '$BACKUPFILE' exists."
else
echo "The file '$BACKUPFILE' in not found."
exec touch "$BACKUPFILE"
fi
[[ -z "$1" ]] && echo "未指定环境" && exit 1
。你不需要执行exec touch
,只需使用touch
即可。 - Matthieu: ${1:?未指定环境}
- chepner[ "$1" = "" ]
,或者只是[ -z "$1" ]
。始终引用您的扩展,并且不要使用==
;它在 test 的 POSIX 规范 中没有标准化。 - Charles Duffy