![命令替换为 bash 脚本中的 $1 值](https://linux22.com/image/661808/%E5%91%BD%E4%BB%A4%E6%9B%BF%E6%8D%A2%E4%B8%BA%20bash%20%E8%84%9A%E6%9C%AC%E4%B8%AD%E7%9A%84%20%241%20%E5%80%BC.png)
我有这个简单的脚本可以更改我的 apache2 网站的权限
/var/www/html# cat permissions_setup.sh
chown -R root $1
chgrp -R www-data $1
chmod -R 750 $1
chmod g+s $1
我的目录中有两个.sh
shell 脚本html/
/var/www/html# ll
total 40
drwxr-xr-x 8 root root 4096 Jul 5 16:45 ./
drwxr-xr-x 4 root root 4096 Jun 13 18:37 ../
drwxr-s--- 5 root www-data 4096 Jun 6 18:17 foo.com/
drwxr-s--- 5 root www-data 4096 Jun 13 18:52 bar.org/
drwxr-xr-x 5 root root 4096 Jun 13 18:13 barfoo.com/
-rwxr-xr-x 1 root root 67 Jul 5 16:44 permissions_setup.sh*
drwxr-xr-x 5 root root 4096 Jun 13 18:42 foobar.com/
-rwx------ 1 root root 1163 Jun 13 18:41 website_add.sh*
我已经在两个网站上运行了该脚本。我尝试在其他网站上使用命令替换,如下所示:
/var/www/html# ./permissions_setup.sh $(ls -I "*.sh")
或者
/var/www/html# ls -I "*.sh" $(./permissions_setup.sh)
chown: missing operand after ‘root’
Try 'chown --help' for more information.
chgrp: missing operand after ‘www-data’
Try 'chgrp --help' for more information.
chmod: missing operand after ‘750’
Try 'chmod --help' for more information.
chmod: missing operand after ‘g+s’
Try 'chmod --help' for more information.
但这两个命令都没有改变所有网站的权限。我对编辑脚本不感兴趣。在这种情况下我可以使用命令替换吗?
答案1
由于您不想编辑脚本:
for f in $(ls -I "*.sh"); do ./permissions_setup.sh $f; done;