我有以下腳本示例:巴什腳本命令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
與下面的輸出悲慘的失敗了:
Backup directory: ~/projects/backup/
mkdir: cannot create directory `~/projects': No such file or directory
我不明白爲什麼。如果我在終端中手動輸入mkdir ~/projects
命令,則會創建該目錄。任何建議是最受歡迎的。
嘗試用您的絕對主目錄(/ home/username /)替換〜。哪個用戶執行備份腳本(你使用的是cron作業?) – Gregor
我打算使用cron,是的。到目前爲止,我正在通過終端手動測試它。 您的解決方案有效。你能向我解釋爲什麼? 是否有任何解決方法,所以我不必將用戶路徑硬編碼到腳本中? –
殼牌報價是你的敵人。你可以閱讀shell如何處理單引號和雙引號:http://mywiki.wooledge.org/Quotes。 – Telemachus