Linux 中编写脚本文件,实现如下功能:该脚本需要输入两个文件的名称,然后由用户选择相 应的操作 若两个参数中任何一个不是普通文件,则报错): cat:输出两个文件的内容; merge:将第1个文件的内容合并到第 2 个文件后面; copy:将第1个文件的内容 copy 到第2个文件工(第2个文件原有内容被覆盖); bye:退出。
时间: 2024-02-19 16:02:42 浏览: 38
好的,这是一个比较典型的脚本编写问题。以下是一个实现该功能的脚本:
```bash
#!/bin/bash
file1=$1
file2=$2
if [[ ! -f $file1 || ! -f $file2 ]]; then
echo "Error: Both arguments must be regular files."
exit 1
fi
while true; do
read -p "Enter 'cat' to output both files, 'merge' to merge file1 into file2, 'copy' to copy file1 to file2, or 'bye' to exit: " action
case $action in
cat)
cat $file1 $file2
;;
merge)
cat $file1 >> $file2
echo "Merged $file1 into $file2."
;;
copy)
cp $file1 $file2
echo "Copied $file1 to $file2."
;;
bye)
echo "Goodbye!"
exit 0
;;
*)
echo "Invalid action. Please try again."
;;
esac
done
```
这个脚本首先检查两个参数是否都是普通文件,如果不是则输出错误信息并退出。然后进入一个无限循环中,等待用户输入操作。用户可以输入 `cat` 来输出两个文件的内容,输入 `merge` 来将第一个文件的内容合并到第二个文件后面,输入 `copy` 来将第一个文件的内容复制到第二个文件中(覆盖第二个文件原有内容),或输入 `bye` 来退出脚本。如果用户输入了无效的操作,则输出错误信息并要求用户重新输入。
阅读全文