我的案例脚本不应区分大小写,并希望传递字符串

时间:2017-07-18 02:07:12

标签: linux bash shell unix

#!/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

1 个答案:

答案 0 :(得分:0)

函数文件读取应忽略大小写输入,如ADD / add,delete / Delete等。如果我给出cmd行参数和值,则执行操作,它应该验证区分大小写,文件存在和文件路径

./ script.sh -a -b /etc/opt/test.txt ADD“你好吗”删除“我很好”替换“嗨”“嘿”