linux编写脚本实现:在主目录下建立20个目录即user01~user20,由运行参数给出指定目录,执行格式为:程序名[目录名],若执行时位置参数没有给出目录名,则默认为当前目录。 并设置每个目录的权限有:所有者和所属组为读写执行权限,其他用户为只读权限。要求:目录数在1~9时,目录名设为user01~user09。
时间: 2023-12-15 14:07:32 浏览: 53
可以使用以下脚本实现:
```bash
#!/bin/bash
# 获取运行参数指定的目录名,如果没有则使用当前目录
if [ $# -eq 0 ]
then
dir=$(pwd)
else
dir=$1
fi
# 创建20个目录,设置权限
for i in {1..20}
do
if [ $i -lt 10 ]
then
mkdir $dir/user0$i
else
mkdir $dir/user$i
fi
chmod 755 $dir/user*
done
# 设置所有者和所属组为读写执行权限,其他用户为只读权限
chmod 755 $dir/user*
chmod o-w $dir/user*
```
首先获取运行参数指定的目录名,如果没有则使用当前目录。然后使用循环创建20个目录,当目录数在1~9时,目录名设为user01~user09。创建完毕后,使用chmod命令设置每个目录的权限,所有者和所属组为读写执行权限,其他用户为只读权限。最后输出创建目录的结果。
相关问题
Linux编写脚本实现:在主目录下建立20个目录即user01~user20.并设置每个目 录的权限有:所有者和所属组为读写执行权限,其他用户为只读权限·要求:目 录数在1~9时,目录名设为user01-user09,由运行参数给出指定目录,执行格式为:程序名【目录名】,若执行时位置参数没有给出目录名,则默认当前目录。
好的,这是一个简单的Shell脚本,可以实现您的需求。以下是脚本的具体实现:
```
#!/bin/bash
if [ $# -eq 0 ]; then
dir="."
else
dir="$1"
fi
if ! [ -d "$dir" ]; then
echo "Directory $dir does not exist!"
exit 1
fi
cd "$dir"
for i in {1..20}; do
if [ $i -lt 10 ]; then
dirname="user0$i"
else
dirname="user$i"
fi
if ! [ -d "$dirname" ]; then
mkdir "$dirname"
fi
chmod 755 "$dirname"
done
```
这个脚本首先会检查运行参数,如果没有给出目录名,则默认为当前目录。然后,它会检查目录是否存在。如果目录不存在,则会输出一条错误信息并退出。接着,脚本会进入指定的目录,使用循环创建20个目录。当目录数小于10时,目录名为user01-user09;否则,目录名为user10-user20。每个目录都会使用chmod命令设置权限为755,即所有者和所属组有读写执行权限,其他用户只有读权限。
您可以将这个脚本保存为一个文件(比如create_dirs.sh),然后使用chmod命令添加执行权限(比如chmod +x create_dirs.sh),最后通过运行./create_dirs.sh [目录名]来执行脚本。如果没有给出目录名,则默认为当前目录。
Linux编写脚本实现:在主目录下建立20个目录即user0~user20,并设置每个目录的权限有:所有者和所属组为读写权限,其他用户为只读权限,要求:目录数在1~93,目录设为user0~user9
可以使用以下脚本来实现:
```
#!/bin/bash
# 创建20个目录
for i in {0..20}; do
# 只创建user0~user9目录
if [ $i -lt 10 ]; then
dir="user$i"
# 创建目录并设置权限
mkdir $dir
chmod 640 $dir
fi
done
```
该脚本会在当前用户的主目录下创建20个目录,其中只有user0~user9被创建。每个目录的权限为:
- 所有者:读写权限
- 所属组:读写权限
- 其他用户:只读权限
注意,该脚本只创建了20个目录,如果需要创建更多的目录,可以将`{0..20}`改为合适的范围。同时,为了避免权限问题,建议在执行脚本前先切换到目标用户的主目录下。
阅读全文