-1
我想將mkdir -p
命令輸出存儲在變量中。將mkdir -p命令輸出到變量中
爲前: -
HOME=/opt
MY_DIR=`mkdir -p $HOME/mydir`
所以echo $MY_DIR
應該顯示/opt/mydir
,但我沒有得到期望的輸出,任何人都可以請幫助?
我想將mkdir -p
命令輸出存儲在變量中。將mkdir -p命令輸出到變量中
爲前: -
HOME=/opt
MY_DIR=`mkdir -p $HOME/mydir`
所以echo $MY_DIR
應該顯示/opt/mydir
,但我沒有得到期望的輸出,任何人都可以請幫助?
mkdir -p
沒有輸出(也就是說,它沒有寫入標準輸出)。
正確的行爲是之前形成你的目錄名你把它傳遞給mkdir
:
my_dir="$HOME/mydir"
mkdir -p -- "$my_dir"
如果你想從mkdir
捕捉標準錯誤,重定向到您的命令替換內標準輸出:
my_dir="$HOME/mydir"
mkdir_msgs=$(mkdir -p -- "$my_dir" 2>&1)
printf 'mkdir wrote the following messages: <%s>\n' "$mkdir_msgs"
'mkdir'命令不提供輸出。既然你已經知道你想創建什麼目錄,爲什麼不把它存儲在一個變量中,就像你用它調用'mkdir'一樣? –
'mkdir -p'沒有提供任何文本輸出,這是調用'MY_DIR = $(mkdir -p $ HOME/mydir)'來執行所需操作所需的。你應該做'MY_DIR =「$ HOME/mydir」; mkdir -p「$ MY_DIR」'或類似的東西。 – Petesh
...作爲旁邊 - 所有大寫變量名稱由POSIX指定的約定用於對shell或操作系統有意義的變量,而至少有一個小寫字符的變量保留給應用程序使用 - 請參閱http://pubs.opengroup.org/onlinepubs/9699919799/basedefs/V1_chap08.html第四段。 –