문자열을 임시로 저장하고 나중에 명령에서 사용하는 bash 스크립트가 있습니다. 문제는 문자열에 !
영숫자가 아닌 다른 문자가 포함되는 경우가 많다는 것입니다. 그런 다음 bash는 해당 문자를 문자 그대로 처리하고 bash가 일반적으로 해당 문자로 수행하는 작업을 수행합니다.
따라서 예에서는 !
기록 교체를 수행하여 명령을 실행하려고 시도합니다. 이 특별한 경우에 시작 스크립트를 사용할 수 있다는 것을 알고 있지만 #!/bin/bash +H
가능한 모든 문자를 실제로 설명할 수는 없습니다. 그러면 bash가 변수의 값을 문자 그대로 사용하도록 하려면 어떻게 해야 합니까?
예를 들어:
var=u134y123!3q54wtgf..314/sa|asd
/path/to/command -option $var
위의 예에서 bash가 내가 히스토리 교체 또는 I/O 리디렉션(으로 인해 |
)을 수행하고 있다고 생각하지 않게 하려면 어떻게 해야 합니까?
답변1
답변2
내가 당신을 올바르게 이해하고 있는지 확실하지 않습니다. 내가 보기엔
var="u134y123ls -laq54wtgf..314/sa|asd"
echo "$var"
그게 다야. 산출:
u134y123ls -laq54wtgf..314/sa|asd