编写一个脚本,能够生成完成基础题目(即:“编写shell脚本,该脚本接收两个参数,参数1作为要读写的文件,参数2作为标志位,标识是读还是写。功能完成对参数1所示文件的读写,该文件的内容为 “自己学号的后3位 MYFILE”。“)的脚本,并且自动执行该生成的脚本(执行功能:写入文件)。
时间: 2024-02-06 21:10:35 浏览: 60
以下是能够生成完成基础题目的脚本:
```bash
#!/bin/bash
# 获取当前用户学号的后3位
USER_ID=$(id -u)
MY_ID=${USER_ID: -3}
# 生成脚本文件名
SCRIPT_NAME="script_${MY_ID}.sh"
# 生成脚本内容
cat <<EOF > $SCRIPT_NAME
#!/bin/bash
if [[ \$# -ne 2 ]]; then
echo "Usage: \$0 FILENAME FLAG"
exit 1
fi
FILENAME=\$1
FLAG=\$2
if [[ \$FLAG == "r" ]]; then
cat \$FILENAME
elif [[ \$FLAG == "w" ]]; then
echo "Hello, World!" > \$FILENAME
else
echo "Invalid flag"
exit 1
fi
EOF
# 添加执行权限
chmod +x $SCRIPT_NAME
# 执行生成的脚本
./$SCRIPT_NAME "MYFILE" "w"
```
该脚本会生成一个名为 `script_XXX.sh` 的脚本文件(其中 `XXX` 为当前用户学号的后3位),并将以下内容写入该文件:
```bash
#!/bin/bash
if [[ $# -ne 2 ]]; then
echo "Usage: $0 FILENAME FLAG"
exit 1
fi
FILENAME=$1
FLAG=$2
if [[ $FLAG == "r" ]]; then
cat $FILENAME
elif [[ $FLAG == "w" ]]; then
echo "Hello, World!" > $FILENAME
else
echo "Invalid flag"
exit 1
fi
```
然后,该脚本会给生成的脚本文件添加执行权限,并执行该文件,将字符串 "Hello, World!" 写入文件 "MYFILE"。
阅读全文