실행 명령과 인쇄 명령 사이에서 bash 스크립트 전환

실행 명령과 인쇄 명령 사이에서 bash 스크립트 전환

이 "트릭"을 사용하여 명령 실행과 인쇄 사이를 전환하는 스크립트를 찾았습니다.

echo_prefix="echo"
rm_cmd="rm file1 file2"
$echo_prefix $rm_cmd

echo_prefix="" 이를 통해 사용자는 스크립트를 테스트 실행한 다음 스크립트를 효과적으로 실행하도록 설정할 수 있습니다 .

그럼에도 불구하고 와일드카드와 인용에 많은 문제가 있음을 발견했기 때문에 좀 더 강력한 다른 접근 방식을 찾고 있습니다.

답변1

가장 좋은 방법은 을 사용하는 것입니다 | bash.

따라서 기본적으로 명령을 에코하면 됩니다. 내 예에서는 rm file1 file2출력 | bash이 실행됩니다.

[ws] user ~ >echo "rm file1 file2"
rm file1 file2
[ws] user ~ >echo "rm file1 file2" | bash
rm: cannot remove ‘file1’: No such file or directory
rm: cannot remove ‘file2’: No such file or directory

@Kusalananda, 파일 이름에 공백이 있으면 첫 번째 부분을 조정하여 echo 명령에서 따옴표를 유지하세요.

echo "rm \"file with space\"" | bash

관련 정보