변수에 저장된 전체 명령줄 인수(키 및 값)를 사용하여 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