Ale*_*ier 1 bash quotes sh mkdir
我有以下脚本示例:
#!/bin/bash
# Aborts the script on "simple command failure" (does not cover pipes)
set -e
# Makes sure we do not run the script outside the correct directory (i.e. the backup directory)
projects_directory='~/projects'
backup_drectory="${projects_directory}/backup/"
echo "Backup directory: ${backup_drectory}"
if [ ! -d "$projects_directory" ]; then
mkdir "$projects_directory"
echo "${projects_directory} created successfully"
fi
Run Code Online (Sandbox Code Playgroud)
通过以下输出可能会失败:
Backup directory: ~/projects/backup/
mkdir: cannot create directory `~/projects': No such file or directory
Run Code Online (Sandbox Code Playgroud)
我不懂为什么.如果我mkdir ~/projects
在终端中手动输入命令,则会创建目录.任何建议都是最受欢迎的.
删除单引号:
projects_directory=~/projects
Run Code Online (Sandbox Code Playgroud)
引号可以防止shell扩展~
角色.