2016-05-12 30 views
0

我已經它使用查找和chgrp/chmod一個腳本來遞歸地設置上的目錄某些權限和基團,其在$1爲換人stat命令輸出到可變

指定要提取的組這個目標目錄,我用

mygrp = ${stat -c %G $mydir} 

bash下執行,這會產生一個錯誤:

${stat -c %G $mydir}: bad substitution 

運行命令直率地

stat -c %G $mydir 

提取組正確,由我似乎無法得到它進入mygrp變量。

+0

,你使用'$()'你不使用大括號的命令子,也'='之間沒有空格 – 123

回答

0

你很困惑${...}$(...)

mygrp=$(stat -c %G "$mydir") 

請注意,=周圍不允許有空格。

0

替換$ {}以$()和刪除空格周圍等號。

$()用於命令替換。

mygrp=$(stat -c %G $mydir) 
0

你應該做的事情

$(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