1
我正在編寫一個bash腳本來自動執行構建過程。我需要在設置plist文件中存儲路徑,並使用plistbuddy在shell腳本中檢索它。
下鍵指定了檔案將被存放的路徑,在桌面上的文件夾:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>archives_path</key>
<string>$HOME/Desktop/Archives/</string>
</dict>
</plist>
在我的shell腳本我訪問密鑰:
SETTINGS_PATH="path/to/plist/file"
ARCHIVES=$(/usr/libexec/PlistBuddy -c "Print archives_path" "$SETTINGS_PATH")
#outputs "$HOME/Desktop/Archives/"
mkdir "$ARCHIVES/test/"
#outputs "mkdir: $HOME/Desktop/Archives: No such file or directory"
的ARCHIVES
變種是不是正如我所料,擴大到/Users/*username*/Desktop/Archives/
。
我做了一個測試用相同的字符串創建一個變種:
ARCHIVES="$HOME/Desktop/Archives/"
echo "$ARCHIVES"
#expands to "/Users/*username*/Desktop/Archives/"
mkdir "$ARCHIVES/test/"
#creates the 'test' directory
由於該腳本將未知的用戶帳戶,我怎麼能強迫$ HOME適當擴大下運行。
試着用''選項-p' mkdir'。 – Cyrus
@Cyrus'mkdir -p $ ARCHIVES'在桌面上創建一個名爲'$ HOME'的文件夾,其中包含文件夾'Desktop/Archives/test /'。 – demosp