如何通過使用一個函數來創建一個新的目錄,並將目錄名稱作爲參數傳遞?在shell腳本中添加一個新的目錄Linux
例子:
CreateNewDirectory \home\Folder1; # Creates a folder named "Folder1" at home #
如何通過使用一個函數來創建一個新的目錄,並將目錄名稱作爲參數傳遞?在shell腳本中添加一個新的目錄Linux
例子:
CreateNewDirectory \home\Folder1; # Creates a folder named "Folder1" at home #
foo() {
dirPath=${1:?Need path to directory as first argument}
mkdir -- "$dirPath"
}
然後調用:
foo /path/to/my/new/directory
@Alfie添加'-p'可能是一個想法,因此如果中間目錄不存在,OP可以添加您建議的路徑而不會出現錯誤。 –
添加未要求的功能(這可能會導致問題,因爲在這種情況下)可能不是一個好主意。考慮用戶傳遞像'/ usr/lacol/lib/newDir'這樣的參數(假設存在特權),然後奇怪爲什麼在調用之後不存在預期的'/ usr/local/lib/newDir'。幾個月後,他們可能會發現裏面有垃圾的錯字目錄'/ usr/lacol /'。 – Alfe
不錯的主意使用':?'。 – konsolebox
我會去與此。
CreateNewDirectory() {
mkdir -p "$1"
}
CreateNewDirectory $HOME/and/any/path/in/between
它允許你創建完整路徑的目錄,包括之間的一切。所以,即使你沒有一個叫and
或一個叫any
或一個叫path
等,它西港島線在沒有爲你的錯誤一氣呵成創建整個樹,目錄,而不需要做
CreateNewDirectory $HOME/and
CreateNewDirectory $HOME/and/any
CreateNewDirectory $HOME/and/any/path
CreateNewDirectory $HOME/and/any/path/in
CreateNewDirectory $HOME/and/any/path/in/between
的Unix不使用反斜槓作爲路徑分隔符;它使用斜線(/)。 – chepner