Tilde(〜/)如果在Shell脚本中使用then语句则不起作用

bre*_*son 2 shell if-statement file

我有以下脚本

file=${file:-letsdump.sh}    
checkfile="~/mysql_backup/$file"
if [ -e "$checkfile" ]; then
mv ~/mysql_backup/$file ~/mysql_backup/$file-bak-$(date +%d%m%Y_%H%M).bak
else
echo 'file doesnt exist'   
fi
Run Code Online (Sandbox Code Playgroud)

我知道我的文件在那里,我在想它可能与〜/?有关

它永远不会找到该文件

Cha*_*ffy 8

双引号(实际上,任何引号)都~无法扩展.改为使用:

checkfile=~/mysql_backup/"$file"
Run Code Online (Sandbox Code Playgroud)

...或者,更好的是,$HOME在所有脚本中使用,并且考虑~成为仅供交互/人类使用的设施.