编写一个脚本,能够生成完成基础题目(即:“编写shell脚本,该脚本接收两个参数,参数1作为要读写的文件,参数2作为标志位,标识是读还是写。功能完成对参数1所示文件的读写,该文件的内容为 “自己学号的后3位 MYFILE”。“)的脚本,并且自动执行该生成的脚本(执行功能:写入文件)
时间: 2024-03-25 13:42:07 浏览: 257
好的,以下是一份生成并执行该脚本的代码:
```bash
#!/bin/bash
# 生成脚本
cat << EOF > script.sh
#!/bin/bash
file=\$1
flag=\$2
if [[ \$flag == "r" ]]; then
cat \$file
elif [[ \$flag == "w" ]]; then
echo "Enter text to write to \$file:"
read text
echo \$text > \$file
else
echo "Invalid flag. Usage: script.sh [file] [r|w]"
fi
EOF
# 添加执行权限
chmod +x script.sh
# 执行脚本,写入文件
./script.sh myfile.txt w
# 清理脚本文件
rm script.sh
```
这段代码会生成一个名为 `script.sh` 的脚本文件,然后给它添加执行权限,接着执行该脚本并将 `myfile.txt` 文件写入文本。最后,它会清理掉生成的 `script.sh` 文件。
请注意,如果您的学号后3位不是数字,那么您需要将脚本中的 `MYFILE` 修改为您自己的学号后3位。
相关问题
1. 编写一个脚本,能够生成完成基础题目(即:“编写shell脚本,该脚本接收两个参数,参数1作为要读写的文件,参数2作为标志位,标识是读还是写。功能完成对参数1所示文件的读写,该文件的内容为 “自己学号的后3位 MYFILE”。“)的脚本,并且自动执行该生成的脚本(执行功能:写入文件)。
以下是生成并执行该脚本的代码:
```bash
#!/bin/bash
# 生成基础题目脚本
echo '#!/bin/bash' > basic_script.sh
echo 'if [ $# -ne 2 ]; then' >> basic_script.sh
echo ' echo "Usage: $0 file_name r/w"' >> basic_script.sh
echo ' exit 1' >> basic_script.sh
echo 'fi' >> basic_script.sh
echo '' >> basic_script.sh
echo 'if [ "$2" == "r" ]; then' >> basic_script.sh
echo ' cat $1' >> basic_script.sh
echo 'elif [ "$2" == "w" ]; then' >> basic_script.sh
echo ' echo "Write something to $1" >> $1' >> basic_script.sh
echo 'else' >> basic_script.sh
echo ' echo "Invalid flag"' >> basic_script.sh
echo ' exit 1' >> basic_script.sh
echo 'fi' >> basic_script.sh
# 执行生成的脚本
chmod +x basic_script.sh
./basic_script.sh "my_file.txt" "w"
```
执行以上代码后,会生成一个名为 `basic_script.sh` 的脚本,并自动执行该脚本,将一些文本内容写入名为 `my_file.txt` 的文件中。可以根据需要修改文件名和写入的内容。
编写shell脚本,该脚本接收两个参数,参数1作为要读写的文件,参数2作为标志位,标识是读还是写。功能完成对参数1所示文件的读写
好的,以下是一个简单的Shell脚本,实现对指定文件的读写操作:
```
#!/bin/bash
filename=$1
mode=$2
if [ "$mode" == "read" ]; then
# 读取文件内容
cat $filename
elif [ "$mode" == "write" ]; then
# 写入文件内容
echo "请输入要写入的内容,按Ctrl + D结束:"
cat > $filename
else
# 显示使用帮助
echo "Usage: $0 filename [read|write]"
fi
```
在执行该脚本时,需要传入两个参数,第一个参数为要读写的文件名,第二个参数为操作标志,取值为"read"或"write"。如果操作标志为"read",则会输出文件内容;如果操作标志为"write",则会等待用户输入要写入的内容,并将其写入到文件中。如果参数不正确,则会输出使用帮助。
例如,如果要读取文件test.txt的内容,可以执行以下命令:
```
./script.sh test.txt read
```
如果要向文件test.txt中写入内容,可以执行以下命令:
```
./script.sh test.txt write
```
希望能够帮到你。
阅读全文