我有一个配置文件,其中包含一些文件的路径。
path.conf文件
路径= /家庭/ work_group /桌面/ rt.txt
路径= /家庭/测试/
.... ....
路径= /家庭/ work_group /文档/ offdoc /
在脚本中,我想读取所有这些文件路径并为它们设置权限。 我尝试了以下代码,但它甚至不打印路径名。
#!/bin/bash
while IFS= read -r line || [[ -n "$path" ]]; do
if [ -n "$path" ]
then
echo "Text read from file: $path"
chmod 0750 $path
fi
path=
done < admin.cfg
有人可以帮我写一个脚本,它接受配置文件中提到的所有文件路径,并将其权限设置为0750。
答案 0 :(得分:1)
这是一个快速的单行程,将为您完成工作:
for i in $(awk -F'=' '{print $2}' path.conf | xargs); do chmod 0750 $i; done
$()
在子shell中运行awk并输出文件名。 xargs
将它们收集到一行中,以便for循环可以迭代它们。
自己应该很容易将其变成一个脚本。
更新: Tripleee指出了你的尝试中的错误,你应该听取他的意见。老实说,我只是读了第一行,认为没有意义,而是写了这个答案。