스크립트 작성의 첫 번째 매개변수: 파일/디렉토리, 기타 매개변수: 명령

스크립트 작성의 첫 번째 매개변수: 파일/디렉토리, 기타 매개변수: 명령

다음 구조의 매개변수 목록을 받는 스크립트를 만들고 싶습니다.

  • 첫 번째 매개변수: 파일 또는 디렉터리
  • 기타 매개변수: 시스템의 명령 이름(예 date: pwd, tail, , head, ls)

스크립트는 첫 번째 인수로 받은 파일/디렉토리에서 모든 명령(두 번째 인수부터 시작)을 실행합니다.

이 스크립트를 시도했지만 명령 옵션을 사용할 수 없습니다. -l -i -n 어떻게 해야 합니까?

#!/bin/bash

name=$1
shift

for cmd in "$@" 
do
    if [ -e $name ]
    then
        echo Executing:$cmd
        ($cmd $name)2>/dev/null
        if [ $? -ne 0 ]
        then
            echo error
        fi
    else
        exit 7
    fi
done

답변1

getopts아니면 getopt그게 답이에요.

getopts예를 들어, 단축키를 사용할 수 -i있으며 사용하기가 더 쉽습니다. 또한 bash에 내장되어 있으며 항상 사용할 수 있습니다.

getopt와 같은 긴 매개변수를 사용할 수 있는 외부 도구이며 --input-file사용하기가 약간 어렵습니다. 이것은 외부 도구이며 이론적으로는 존재할 수 없지만...

여기에서 간단한 튜토리얼을 읽어보세요: https://dustymabe.com/2013/05/17/easy-getopt-for-a-bash-script/

관련 정보