我发现了一个奇怪的问题,在变量上使用双引号和不使用双引号得到不同的结果。
$ cat test.sh
#!/usr/bin/env bash
folder="~/backup"
ls -l ~/backup
ls -l ${folder}
$ bash test.sh
total 197904
-rw-r--r-- 1 test staff 96133120 31 Mar 22:46 backup-202103312246.tar.gz
ls: ~/backup: No such file or directory
如果我从 folder
的值中删除双引号
$ cat test.sh
folder=~/backup
ls -l ~/backup
ls -l ${folder}
$ bash test.sh
total 197904
-rw-r--r-- 1 test staff 96133120 31 Mar 22:46 backup-202103312246.tar.gz
total 197904
-rw-r--r-- 1 test staff 96133120 31 Mar 22:46 backup-202103312246.tar.gz
为什么我得到不同的结果?