development

bash 스크립트에서 첫 번째 인수를 제외한 모든 인수를 처리하십시오.

big-blog 2020. 2. 23. 11:58
반응형

bash 스크립트에서 첫 번째 인수를 제외한 모든 인수를 처리하십시오.


첫 번째 인수가 파일 이름으로 예약되어있는 간단한 스크립트가 있으며 다른 모든 선택적 인수는 스크립트의 다른 부분으로 전달되어야합니다.

Google을 사용 하여이 위키를 찾았 지만 문자 그대로의 예를 제공했습니다.

echo "${@: -1}"

나는 다음과 같이 다른 일을 할 수 없다.

echo "${@:2}"

또는

echo "${@:2,1}"

터미널에서 "잘못된 대체"를 얻습니다.

문제는 무엇이며 첫 번째 인수를 제외한 모든 인수를 bash 스크립트에 어떻게 처리합니까?


이것을 사용하십시오 :

echo "${@:2}"

다음 구문 :

echo "${*:2}"

로하기 때문에, 잘 작동하지만,하지 않는 것이 좋습니다 @Gordon는 이미 설명, 사용하는 것을 *, 그것은, 공백 하나의 인수로 함께 모든 인수를 실행하는 동안 @보존 그들 사이의 휴식 시간 (심지어 자신에 공백이 포함 된 인수의 몇 가지 경우 ). 와는 차이가 echo없지만 많은 다른 명령에 중요합니다.


/bin/sh시도해 볼만한 솔루션을 원한다면

first_arg="$1"
shift
echo First argument: "$first_arg"
echo Remaining arguments: "$@"

shift [n]위치 매개 변수를 n이동합니다 . shift세트의 값 $1의 값을 $2, 값 $2의 값과 $3의 값을 감소시키는 등, 그리고, $#하나.


http://wiki.bash-hackers.org/scripting/posparams

그것은 사용 설명 shift후 (첫 번째 N 매개 변수를 폐기 할 경우) 및 대량 사용을 구현을

참고 URL : https://stackoverflow.com/questions/9057387/process-all-arguments-except-the-first-one-in-a-bash-script



반응형