7.编写shell脚本test07.sh实现如下功能:生成一个长度为50的随机数组,将其中的偶数当前目录下的mytest07目录中的abc.txt中。
时间: 2024-03-26 09:38:15 浏览: 19
以下是实现上述功能的test07.sh脚本的代码:
```bash
#!/bin/bash
# 生成长度为50的随机数组
arr=($(shuf -i 1-100 -n 50))
# 遍历数组,将偶数写入abc.txt文件中
for i in "${arr[@]}"
do
if [ $(($i % 2)) -eq 0 ]; then
echo $i >> ./mytest07/abc.txt
fi
done
```
解释:
1. `#!/bin/bash` 表示该脚本使用bash解释器执行。
2. `arr=($(shuf -i 1-100 -n 50))` 生成长度为50的随机数组。
3. `for i in "${arr[@]}"` 遍历数组。
4. `if [ $(($i % 2)) -eq 0 ]; then` 判断当前元素是否为偶数。
5. `echo $i >> ./mytest07/abc.txt` 如果是偶数,则将其写入当前目录下的mytest07目录中的abc.txt文件中。
需要注意的是,如果当前目录下不存在mytest07目录,需要先创建该目录。可以使用以下命令创建目录:
```bash
mkdir mytest07
```
相关问题
编写shell脚本test07.sh实现如下功能:生成一个长度为50的随机数组,将其中的偶数当前目录下的mytest07目录中的abc.txt中。
可以使用如下的shell脚本实现:
```bash
#!/bin/bash
# 生成50个随机数
for i in {1..50}
do
arr[$i]=$RANDOM
done
# 遍历数组,将偶数写入abc.txt
for i in ${arr[@]}
do
if [ $(($i % 2)) -eq 0 ]
then
echo $i >> ./mytest07/abc.txt
fi
done
```
该脚本首先生成长度为50的随机数组,然后遍历数组,将其中偶数写入当前目录下的mytest07目录中的abc.txt文件中。注意:这里使用了`>>`符号,表示将输出追加到文件末尾,避免覆盖原有内容。
1.编写shell脚本test01.sh实现如下功能:将“/root/tmp”目录及其子目录夹下存放的文件名中包含字符‘t’的文件以相同的名字拷贝到 当前目录中的mytest01目录中。
好的,我会为你编写该Shell脚本。以下是代码:
```bash
#!/bin/bash
# 创建mytest01目录
mkdir mytest01
# 查找/root/tmp目录及其子目录下包含字符't'的文件,并拷贝至mytest01目录中
find /root/tmp -name "*t*" -exec cp {} ./mytest01 \;
```
解释一下该脚本的执行步骤:
1. 创建名为mytest01的目录;
2. 使用`find`命令查找/root/tmp目录及其子目录下包含字符't'的文件;
3. 对于每一个找到的文件,使用`-exec`选项执行`cp`命令将其拷贝至mytest01目录中。
注意事项:
- 该脚本需要在root用户下执行,因为/root/tmp目录只有root用户才有读取权限;
- 执行该脚本前,请确保当前目录没有名为mytest01的子目录,否则会覆盖该目录中的文件。