쉘 스크립트 매개변수

쉘 스크립트 매개변수

다음 스크립트가 있습니다. 입력을 -a, -l, -s <number>, -c <keyword>, -d <keyword> -b/-r, 로 만들고 싶습니다 -n. 그러나 숫자 및 키워드 매개변수와 또는 을 나타내는 extracom 매개변수에는 -b문제가 있습니다 -r. 예를 들어 -s 2 또는 -c dog 또는 -d cat -b를 입력할 때마다 명령은 아무 작업도 수행하지 않습니다. 디렉토리는 이름, 도시 및 전화번호 목록이 포함된 txt 파일이기도 합니다(예: nick smith london 456523).

#!/bin/bash

        read -rp 'choose: ' opt word extracom
            case $opt in 
            -a) echo Type name\,surname\,city\,phone number\.
                read name surname city tel
                echo $name $surname $city $tel >> list ;;
            -l) echo Shows the contents of the file\:
                cat -n catalog (|sed -i '/^$/d' list);;
            -s\ [1-4]) echo About to show the contents of a file sorted\:
                       sort -k ${opt#"-s "} catalog ;;
            -c) echo Show lines that contain the word $word
                if egrep -q "$word" catalog; then
                   cat catalog | egrep $word
                else
                   echo The string you are looking for does not exist
                fi ;;
            -d) case $extracom in
                -b) if egrep -q "$word" catalog; then
                       sed -i "s/.*$word.*//" catalog 
                   else
                       echo The string you are looking for does not exist
                   fi;;
                -r)if egrep -q "$word" catalog; then  
                      sed -i "/$word/d" catalog
                   else
                      echo The string you are looking for does not exist
                   fi;;
                esac
                ;;
            -n)egrep "^$" catalog | wc -l
                 read -rp 'Do you want to delete the file's empty lines? Yes or no?' answer
            case $answer in 
                yes) sed -i '/^$/d' catalog ;;
                no) cat catalog ;;
            esac;;
            *) echo -e 'Usage Manual:\n-a: New entry to catalog\n-l Displays the contents of the catalog without empty lines\n-s <number>: Displays
            the contents of the file sorted according to the number\n-c <keyword> shows file line that contain that specific keyword\n-d <keyword> -b/-r:
            Deletes empty file lines\n-n: Number of empty file lines and question about deleting them'
            esac

미리 감사드립니다!

관련 정보