1

次のスクリプト サンプルがあります。

#!/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

次の出力で惨めに失敗します。

Backup directory: ~/projects/backup/
mkdir: cannot create directory `~/projects': No such file or directory

私はなぜなのか理解していない。mkdir ~/projectsターミナルでコマンドを手動で入力すると、ディレクトリが作成されます。どんな提案でも大歓迎です。

4

1 に答える 1

7

一重引用符を削除します。

projects_directory=~/projects

引用符は、シェルが文字を展開するのを防ぎ~ます。

于 2012-09-15T12:34:34.643 に答える