bash가 변수의 값을 문자 그대로 사용하도록 강제하는 방법은 무엇입니까?

bash가 변수의 값을 문자 그대로 사용하도록 강제하는 방법은 무엇입니까?

문자열을 임시로 저장하고 나중에 명령에서 사용하는 bash 스크립트가 있습니다. 문제는 문자열에 !영숫자가 아닌 다른 문자가 포함되는 경우가 많다는 것입니다. 그런 다음 bash는 해당 문자를 문자 그대로 처리하고 bash가 일반적으로 해당 문자로 수행하는 작업을 수행합니다.

따라서 예에서는 !기록 교체를 수행하여 명령을 실행하려고 시도합니다. 이 특별한 경우에 시작 스크립트를 사용할 수 있다는 것을 알고 있지만 #!/bin/bash +H가능한 모든 문자를 실제로 설명할 수는 없습니다. 그러면 bash가 변수의 값을 문자 그대로 사용하도록 하려면 어떻게 해야 합니까?

예를 들어:

var=u134y123!3q54wtgf..314/sa|asd
/path/to/command -option $var

위의 예에서 bash가 내가 히스토리 교체 또는 I/O 리디렉션(으로 인해 |)을 수행하고 있다고 생각하지 않게 하려면 어떻게 해야 합니까?

답변1

그것은 모두 따옴표에 관한 것입니다.아포스트로피 !문자 그대로 저장 합니다 |.큰따옴표 $var.

var='u134y123!3q54wtgf..314/sa|asd'
/path/to/command -option "$var"

답변2

내가 당신을 올바르게 이해하고 있는지 확실하지 않습니다. 내가 보기엔

var="u134y123ls -laq54wtgf..314/sa|asd"
echo "$var"

그게 다야. 산출:

u134y123ls -laq54wtgf..314/sa|asd

관련 정보