다른 명령에 대한 인수로 사용하기 위해 명령 대체의 출력을 올바르게 이스케이프합니다.

다른 명령에 대한 인수로 사용하기 위해 명령 대체의 출력을 올바르게 이스케이프합니다.

COMMAND$(COMMAND)bash에서 명령 대체(`` 또는 )의 출력을 다른 프로그램의 인수로 올바르게 사용하는 방법이 있습니까 ?

예:

% touch -- safe-name -name-with-dash-prefix "name with space" \
    'name-with-double-quote"' "name-with-single-quote'" \
    'name-with-backslash\'

이 중 아무것도:

% ls -l `ls`
% ls -l $(ls)

이것도 아니고:

% ls -l "`ls`"
% ls -l "$(ls)"

명령 대체의 출력은 모든 예제 이름에 대한 인수로 올바르게 다시 제공됩니다. 큰따옴표가 없으면 인용된 이름은 괜찮지만 공백이 있는 이름은 괜찮습니다. 큰따옴표를 사용할 때 이름에 공백이 있어도 괜찮지만 여러 이름이 연결될 수 있습니다.

참고: 논의를 명령 대체(예: 파이프, 맵 파일 또는 xargs 없음)로 제한하십시오.

관련 정보