我有一个脚本,它使用 find 并chgrp/chmod
在指定的目录上递归设置某些权限和组$1
要提取此目标目录的组,我使用
mygrp = ${stat -c %G $mydir}
但是在 下执行bash
,这会产生错误:
${stat -c %G $mydir}: bad substitution
简单地运行命令
stat -c %G $mydir
正确提取组,我似乎无法将其放入mygrp
变量中。
我有一个脚本,它使用 find 并chgrp/chmod
在指定的目录上递归设置某些权限和组$1
要提取此目标目录的组,我使用
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