다음에서 명령을 작성할 수 있습니다. 배열 :
#!/bin/bash var=ON cmd=( /home/username/myscript ) # create array with one element if [ "$var" == "ON" ]; then cmd+=( -a ) # append to the array fi cmd+=( -b 76 ) # append two elements
다음을 사용하여 실행합니다.
"${cmd[@]}"
따옴표 참고 마지막 부분 주위에, 위의 할당 주위에 괄호. 구문은 추악하지만 공백 등을 포함하는 인수면에서 작동합니다. (공백이있는 인수를 추가하려면 따옴표를 사용합니다 (예 : cmd+=("foo bar")
))
덜 추악한 방법과 실패 할 수있는 방법과 관련이 있습니다.
여기에있는 하나의 선택적 인수와 같은 간단한 경우에는 대체 값 확장을 사용할 수 있습니다.
var=x myscript ${var:+"-a"} -b 76
여기서 ${var:+foo}
는 var
인 경우 foo
를 삽입합니다. div>는 비어 있지 않습니다 (따라서 var=ON
, var=FALSE
, var=x
는 모두 삽입). , 비어 있거나 설정되지 않은 경우 아무 것도 표시되지 않습니다 (var=
또는 unset var
). 일반적인 인용 문제에주의하세요.
댓글