Bash에서 명령줄 인수를 변경하려면 어떻게 해야 합니까?
Bash 스크립트에서 명령줄 인수를 변경하는 방법이 있습니까?예를 들어 Bash 스크립트는 다음과 같이 호출됩니다.
./foo arg1 arg2
스크립트 내에서 arg1의 값을 변경할 수 있는 방법이 있습니까?예를 들어 다음과 같습니다.
$1="chintz"
모든 인수를 리셋해야 합니다.예를 들어, 변경하다 $3
:
$ set -- "${@:1:2}" "new" "${@:4}"
기본적으로 변경할 인수를 제외한 모든 인수를 현재 값으로 설정합니다. set --
POSIX 7에서도 지정됩니다.
표기법이 2개로 확장됩니다(따라서2
표기법에서) 오프셋에서 시작하는 위치 인수1
(즉,$1
)의 줄임말입니다."$1" "$2"
이 경우는, 예를 들면, 교환하고 싶은 경우에 훨씬 편리합니다. "${17}"
.
가독성과 유지보수를 최적화하기 위해 할당하는 것이 좋을 수 있습니다.$1
그리고.$2
더 의미 있는 변수들(모르겠는데,input_filename = $1
그리고.output_filename = $2
그 후 변수 중 하나를 덮어씁니다.input_filename = 'chintz'
스크립트 입력은 다른 곳에서 필요할 경우에 대비하여 변경하지 않고 그대로 둡니다.
오래된 질문인 것은 알지만 thkala의 답변이 매우 도움이 된다는 것을 알게 되었습니다.그래서 저는 아이디어를 사용하여 정의되지 않은 인수에 기본값을 추가할 수 있도록 약간 확장했습니다.예를 들어 다음과 같습니다.
# set defaults for the passed arguments (if any) if not defined.
#
arg1=${1:-"default-for-arg-1"}
arg2=${2:-"default-for-arg-2"}
set -- "${arg1}" "${arg2}"
unset arg1 arg2
이게 다른 사람에게 도움이 됐으면 좋겠어요.
언급URL : https://stackoverflow.com/questions/4827690/how-to-change-a-command-line-argument-in-bash
'programing' 카테고리의 다른 글
x64 사용자 지정 클래스의 각 열거에 대한 버그 (0) | 2023.04.11 |
---|---|
VB 코드에서 VBProject 보호 해제 (0) | 2023.04.11 |
Javascript 내보내기 CSV 인코딩 utf-8 문제 (0) | 2023.04.11 |
git은 변경된 변경만 추가하고 추적되지 않은 파일은 무시합니다. (0) | 2023.04.11 |
HTML Anchor를 'name'으로 만들어야 하나요, 아니면 'id'로 만들어야 합니까? (0) | 2023.04.11 |