我有一个脚本,它使用find和chgrp/chmod
递归设置某些权限并对$1
要提取此目标目录的组,请使用
mygrp = ${stat -c %G $mydir}
但在bash
下执行,会产生错误:
${stat -c %G $mydir}: bad substitution
明白地运行命令
stat -c %G $mydir
正确地提取群组,我似乎无法将其纳入mygrp
变量。
答案 0 :(得分:0)
您将${...}
与$(...)
混淆。
mygrp=$(stat -c %G "$mydir")
请注意,=
周围不允许有空格。
答案 1 :(得分:0)
$()
执行variable expansion。
对于command substitution,您应该使用mygrp=$(stat -c %G $mydir)
saveWorkbook(templateWB, "some other path")
答案 2 :(得分:0)
用$()替换$ {}并删除等号周围的空格。
$()用于命令替换。
mygrp=$(stat -c %G $mydir)
答案 3 :(得分: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