编写shell程序:查找某文件是否有读权限,如有,则加写权限,如没有读权限,则加读权限.
时间: 2023-09-15 08:01:57 浏览: 143
shell判断文件,目录是否存在或者具有权限的代码
### 回答1:
以下是一个简单的Shell程序,用于检查文件是否有读权限,如果有,则添加写权限,如果没有,则添加读权限。
```
#!/bin/bash
# 获取文件名
echo "请输入文件名:"
read filename
# 检查文件是否存在
if [ ! -f $filename ]; then
echo "文件不存在!"
exit 1
fi
# 检查文件是否有读权限
if [ -r $filename ]; then
# 添加写权限
chmod +w $filename
echo "已添加写权限!"
else
# 添加读权限
chmod +r $filename
echo "已添加读权限!"
fi
```
使用方法:
1. 将上述代码保存为一个文件,例如`check_permission.sh`。
2. 打开终端,进入保存文件的目录。
3. 运行以下命令,给文件添加执行权限:
```
chmod +x check_permission.sh
```
4. 运行程序:
```
./check_permission.sh
```
5. 按照提示输入文件名,程序会自动检查文件权限并添加相应权限。
注意事项:
- 程序只能检查当前目录下的文件,如果需要检查其他目录下的文件,需要修改程序。
- 程序只能添加读写权限,如果需要添加其他权限,需要修改程序。
### 回答2:
在Shell编程中,可以使用`test`命令来检查文件的权限,然后使用`chmod`命令添加相应的权限。
以下是一个可以实现该功能的Shell程序:
```Shell
#!/bin/bash
file="path/to/file" # 替换成要检查的文件路径
if [ -r "$file" ]; then # 检查是否有读权限
echo "文件有读权限"
if [ -w "$file" ]; then # 检查是否有写权限
echo "文件已有写权限"
else
chmod +w "$file" # 添加写权限
echo "已添加写权限"
fi
else
echo "文件没有读权限"
chmod +r "$file" # 添加读权限
echo "已添加读权限"
fi
```
以上脚本中的`path/to/file`应替换为要检查的文件的实际路径。程序首先使用`-r`选项检查文件是否有读权限,如果有则进入`if`代码块,再使用`-w`选项检查是否有写权限,如果没有则使用`chmod`命令添加写权限。如果文件没有读权限,则进入第二个`else`代码块,使用`chmod`命令添加读权限。
通过运行以上Shell程序,可以检查并添加文件的读写权限,根据情况而定。
### 回答3:
编写shell程序如下:
```shell
#!/bin/bash
# 输入文件路径
read -p "请输入文件路径:" filePath
# 检查文件是否存在
if [ ! -e "$filePath" ]; then
echo "文件不存在,请重新输入"
exit 1
fi
# 检查文件读权限
if [ -r "$filePath" ]; then
# 添加写权限
chmod +w "$filePath"
echo "已添加写权限"
else
# 添加读权限
chmod +r "$filePath"
echo "已添加读权限"
fi
```
使用这个shell程序,可以通过输入文件路径来检查文件是否有读权限,如果有则添加写权限,如果没有则添加读权限。程序先检查文件是否存在,如果文件不存在则提示重新输入;然后检查文件的读权限,如果有则添加写权限,否则添加读权限。根据检查结果,程序会输出相应的提示信息。
阅读全文