#!/bin/bash
helpFunc()
{
echo "Usage:
$0 --arg1
$0 --arg2 filename add/delete/replace "hi how are you"
$0 --help
"
}
function fileread() {
pwd
echo "Fileread Function"
if [ -f $filename ]
then
echo "file exists"
filename=$1
cat $1
case "$1" in
add|ADD)
read $1
if [$2 == 'add' ]
then
echo $3 >> $1
echo "add opeartion completed"
fi
shift
;;
delete|DELETE)
read $1
echo "echo delet string from file"
if [$2 == 'delete' ]
then
sed '/$3/d' $1
echo "add opeartion completed"
fi
shift
;;
replace|REPLACE)
read $1
if [ $4 == 'replace' ]
then
sed "s/$5/$6/g" "$1" > temp.txt
else
echo "Error: Cannot read $1"
fi
shift
;;
esac
shift
# return 0
else
echo "file not exist"
#return 1
fi
}
while [ $# ]
do
case "$1" in
--a)
if [ -z "$2" ]
then
echo "No argument supplied"
echo "hello" && echo " current process id : $$ "
else
echo -e "no need of sending arguments for --a"
helpFunc a;
exit 1
shift
fi
;;
--b)
if [ $( echo -e $2 | grep -c -E "^-" ) -eq 0 ]
then
fileName=$2
if [ -f "$fileName" ]
then
echo -e "The file is valid"
echo "Displaying $2 file..."
[ -z $fileName ] && { echo "File name missing"; exit 1; } || cat $fileName
case "$filename" in
add|ADD)
echo "adding"
fileread $3 $4
shift
;;
delete|DELETE)
echo "echo deleting"
fileread
shift
;;
replace|REPLACE)
echo "replacing"
fileread
shift
;;
esac
else
echo -e "please enter the valid file name or location"
helpFunc b;
exit 1
shift
fi
fi
esac
shift
done
exit 0
答案 0 :(得分:0)
函数文件读取应忽略大小写输入,如ADD / add,delete / Delete等。如果我给出cmd行参数和值,则执行操作,它应该验证区分大小写,文件存在和文件路径
./ script.sh -a -b /etc/opt/test.txt ADD“你好吗”删除“我很好”替换“嗨”“嘿”