我已經它使用查找和chgrp/chmod
一個腳本來遞歸地設置上的目錄某些權限和基團,其在$1
爲換人stat命令輸出到可變
指定要提取的組這個目標目錄,我用
mygrp = ${stat -c %G $mydir}
但bash
下執行,這會產生一個錯誤:
${stat -c %G $mydir}: bad substitution
運行命令直率地
stat -c %G $mydir
提取組正確,由我似乎無法得到它進入mygrp
變量。
我已經它使用查找和chgrp/chmod
一個腳本來遞歸地設置上的目錄某些權限和基團,其在$1
爲換人stat命令輸出到可變
指定要提取的組這個目標目錄,我用
mygrp = ${stat -c %G $mydir}
但bash
下執行,這會產生一個錯誤:
${stat -c %G $mydir}: bad substitution
運行命令直率地
stat -c %G $mydir
提取組正確,由我似乎無法得到它進入mygrp
變量。
你很困惑${...}
與$(...)
。
mygrp=$(stat -c %G "$mydir")
請注意,=
周圍不允許有空格。
替換$ {}以$()和刪除空格周圍等號。
$()用於命令替換。
mygrp=$(stat -c %G $mydir)
你應該做的事情
$(stat -c %G "$mydir")
代替
${stat -c %G $mydir}
你應該把$mydir
給出該目錄的名稱可能是非標準的雙引號,說他們包含換行符。如果該行是
$(stat -c %G $mydir)
則:
$ ./your_script_name "dir
37190290"
會失敗:
stat: cannot stat `dir': No such file or directory
stat: cannot stat `37190290': No such file or directory
,你使用'$()'你不使用大括號的命令子,也'='之間沒有空格 – 123