변수에 저장된 명령줄 인수를 사용하여 Bash 스크립트에서 프로그램 호출

변수에 저장된 명령줄 인수를 사용하여 Bash 스크립트에서 프로그램 호출

변수에 저장된 전체 명령줄 인수(키 및 값)를 사용하여 Bash 스크립트에서 특정 프로그램을 호출할 수 있습니까?

scanimage내 스크립트에서 다음 호출을 사용합니다.

scanimage -p --mode "True Gray" --resolution 150 -l 0 -t 0 -x 210 -y 297 --format=png  -o scan.png

일부 매개변수를 변수에 저장하고 싶습니다. --mode스위치 와 관련하여 이것을 시도했습니다 .

options="--mode \"True Gray\""
scanimage -p $options --resolution 150 -l 0 -t 0 -x 210 -y 297 --format=png  -o scan.png

그러나 이것은 작동하지 않는다고 scanimage말합니다.

scanimage: setting of option --mode failed (Invalid argument)

스위치 값을 저장하는 것만으로도 --mode작동합니다.

mode="True Gray"
scanimage -p --mode "$mode" --resolution 150 -l 0 -t 0 -x 210 -y 297 --format=png  -o scan.png

하지만 스위치를 변경하고 싶고 어떤 스위치가 설정될지 알지 못한 채 여러 스위치를 사용자 정의하고 싶습니다.

그렇다면 명령줄 옵션의 값을 변수에 저장할 뿐만 아니라 옵션 스위치도 값과 함께 저장할 수 있습니까?

답변1

문자열 대신 배열을 사용하면 이 작업을 수행할 수 있습니다. 이 시도:

options=( '--mode' "True Gray" )
scanimage -p "${options[@]}" --resolution 150 -l 0 -t 0 -x 210 -y 297 --format=png  -o scan.png

관련 정보