이중 따옴표 안에 와일드 카드가 있습니까? [닫은]


6

"표준 BASH"에서 큰 따옴표 안에 와일드 카드를 사용합니까? 예 :

$ touch abc
$ ls "*abc*"

아니면 bash에서 작동하지 않겠습니까?

나는 Ubuntu가 POSIX 나 BASH를 따르지 않는 bash 변종을 가지고 있다고 들었다. 그게 사실이야?


어떤 질문을 먼저 대답 하시겠습니까?
Ignacio Vazquez-Abrams

...................양자 모두
Matt

기록을 위해서는 한 번에 한 가지 질문 만하는 것이 좋습니다 (Ignacio가 의미 한 것일 수도 있습니다).
slhck

답변:


6

짧은 대답 : 아니오

남자 bash에서 긴 대답 :

큰 따옴표로 문자를 묶는 것은 따옴표 안에있는 모든 문자의 리터럴 값을 유지합니다. 단, $,`, \,

그래서:

~$ touch sas
~$ ls *a*
sas
~$ ls "*a*"
ls: cannot access *a*: No such file or directory

물론 큰 따옴표와 별표에 대해 말할 때 또 다른 예외가 있습니다 : 매개 변수 확장 (예 : "$ *") ...하지만 그것은 다른 역사입니다

두 번째 질문 : 대시에 대해 묻고 있습니까? 대시 (dash)는 스크립트 용 경량 쉘입니다. 데비안과 우분투는 (데비안 기반) 확장자 당 sh에 별칭이 지정됩니다. bash에 비해 속도가 중요하므로 시스템 스크립트에 기본적으로 사용됩니다. 그러나 bash는 기본적으로 사용자를위한 대화 형 쉘로 계속 사용할 수 있습니다.

 ~$ ls -l /bin/sh 
lrwxrwxrwx 1 root root 4 2011-04-21 11:54 /bin/sh -> dash

아 .. 고마워. 예, 저는 / bin / sh가 에일 리 어스 된 것을 알고있었습니다. dash. 그러나 어쨌든, 제가 이야기하고있는 누군가가 그의 Red Hat 시스템에서 작동한다는 것을 알려줍니다. [큰 따옴표로 묶을 때 - 그가 따옴표를 사용하지 않는 유일한 방법이라고 말합니다.] 어떤 생각?
Matt

아니요, 당신의 친구가 완전히 잘못되었습니다 - 내 대답에 게시 한 사람 bash의 견적을 다시 확인하십시오.
hmontoliu

나는 그가 내 친구라고 말하지 않았다 : P 우리는 의견이 분분했고 11 년 동안 프로그래머 였고 커다란 직업을 가지고 있었다. 그리고 나는 그와 의견이 맞지 않았기 때문에 구글과 물건들로부터 배웠다. 다른 친구 [친구 인 친구 -이 친구는 친구였습니다]는 토론에서 가장 지식이 풍부한 사람 이었기 때문에 자신의 지식을 닦아서는 안되는 방법에 대해 이야기하기 시작했습니다. 하지만 고마워! :)
Matt
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.