echo
수신된 매개변수를 표시하는 유사한 명령이 있습니까 ?
예를 들어, echo "a b" c
디스플레이a b c
하지만 비슷한 것을 보고 싶습니다 "a b" "c"
.
답변1
예를 들어 다음과 같이 사용할 수 있습니다 printf
.
$ printf ">%s<\n" "a b" c
>a b<
>c<
또는 원하는 구분 기호를 사용하세요. 하지만 그렇게 하면 set -x
쉘 스타일로 인용된 출력이 생성되지 않습니다. 그리고 항상 형식 문자열을 한 번 이상 인쇄하므로 printf ">%s<\n"
다른 인수는 생성되지 않습니다 ><
.
또는 Bash에서 쉘 스타일 인용 출력을 얻으십시오.
$ printf "%q\n" "a b" c
a\ b
c
단점은 %q
따옴표보다 백슬래시를 선호하므로 출력이 보기 흉하고 필요 이상으로 읽기가 어렵다는 것입니다.
물론 이를 수행하기 위해 외부 스크립트를 만들 수도 있지만 귀하의 경우에는 솔루션이 너무 무거울 수 있습니다.
$ cat args.sh
#/bin/bash
printf "%d args: " "$#"
for x do
printf "%s " "${x@Q}" # nicer output than printf %q
done
echo
$ ./args.sh "a b" c
2 args: 'a b' 'c'