bash의 큰 따옴표 사이에 “!”기호를 쓰는 방법은 무엇입니까? [복제]

이 질문에는 이미 답변이 있습니다.

나는 어떻게 쓰는지 알아낼 수 없다. ! 기호를 큰 따옴표 문자열에 넣을 때 bash 스크립트에 추가하십시오.

예 :

var="hello! my name is $name! bye!"

다음 명령을 입력하면 뭔가 이상한 일이 생깁니다.

$ age=20
$ name='boda'
$ var="hello! my name is $name! bye!"

내가 마지막 명령에서 Enter 키를 누르면 명령은 마지막 명령없이 스스로 반복됩니다 (유형 자체). !:

var="hello! my name is $name! bye"

다시 Enter 키를 누르면 :

$ var="hello! my name is $name bye"

Enter를 다시 누르면 아무것도 사라집니다.

$

내가 이것을 시도하면 :

$ echo "hello\! my name is $name\! bye\!"

그런 다음 출력 : hello\! my name is boda\! bye\!

작은 따옴표를 사용하면 내 이름이 확장되지 않습니다.

$ echo 'hello! my name is $name! bye!'

출력은 다음과 같습니다. hello! my name is $name! bye!

나는이 방법으로 일하고있다 :

$ echo "hello"'!'" my name is $name"'!'" bye"'!'

하지만 그것은 하나의 큰 난장판입니다. "' 이해 / 편집 / 유지 / 업데이트가 불가능합니다.

누구든지 도와 줄 수 있습니까?



답변

다음과 같이하면 코드를 읽기가 더 쉬울 것입니다.

:~$ name='boda'
:~$ var="hello! my name is $name! bye!" && echo $var
hello! my name is boda! bye!
  • && – 두 번째 명령 echo $var 첫 번째 명령이 실행될 때만 실행됩니다. var="hello! my name is $name! bye!" 성공합니다.

  • :~$ -이 예에서는 bash 프롬프트를 표시하기 때.에 입력되지 않습니다.

  • ! – 너 탈출 할 필요는 없어. ! 위의 명령에서 큰 따옴표 문자 쌍 안에 있기 때문에.