
그만큼 echo 명령은 형식화 된 텍스트를 터미널 창에 쓰는 데 적합합니다. 정적 텍스트 일 필요는 없습니다. 쉘 변수, 파일 이름 및 디렉토리를 포함 할 수 있습니다. 에코를 리디렉션하여 텍스트 파일과 로그 파일을 만들 수도 있습니다. 이 간단한 안내서에 따라 방법을 찾으십시오.
에코는 반복하라는 말을 반복합니다.
제우스는 올림푸스 산을 떠나 아름다운 요정들과 어울리는 것을 좋아했습니다. 한 번의 여행에서, 그는 부인 Hera가 그를 따라 오면 Echo라고 불리는 산의 요정에게 말했다. 헤라는 제우스를 찾아 왔고, 에코는 헤라와 대화를 나누기 위해 최선을 다했습니다. 결국 헤라는 그녀의 성미를 잃고 가난한 에코를 저주했다. 그녀가 그를 따라 잡았을 때 Hera가 Zeus에게 한 것은 누군가의 추측입니다.
그리고 그것은 거의 echo인생이 많습니다. 반복하라는 지시를 반복합니다. 간단한 기능이지만 중요한 기능입니다. 없이 echo 예를 들어, 셸 스크립트에서 가시적 인 출력을 얻을 수 없습니다.
수많은 종소리와 휘파람 소리가 들리지 않지만 좋은 기회가 있습니다. echo 모르거나 잊어 버린 몇 가지 기능이 있습니다.
에코? 에코!
대부분의 Linux 시스템은 두 가지 버전을 제공합니다 echo. Bash 쉘은 자체적으로 echo 내장 된 바이너리 실행 버전이 있습니다. echo 게다가.
다음 명령을 사용하여 서로 다른 두 가지 버전을 볼 수 있습니다.
type echo
whereis echo

그만큼 type command는 인수가 쉘 내장, 바이너리 실행 파일, 별명 또는 함수인지에 따라 전달하는 명령인지 알려줍니다. 그것은 우리에게 echo 쉘 내장입니다.
답을 찾 자마자 type 더 일치하는 것을 찾지 않습니다. 따라서 시스템에 같은 이름을 가진 다른 명령이 있는지 알려주지 않습니다. 그러나 먼저 찾은 것을 알려줍니다. 그 명령을 실행할 때 기본적으로 사용됩니다.
그만큼 whereis command는 바이너리 실행 파일, 소스 코드 및 명령 페이지를 명령 줄 매개 변수로 전달합니다. 별도의 바이너리 실행 파일이 없기 때문에 쉘 내장을 찾지 않습니다. Bash 실행 파일의 필수 요소입니다.
그만큼 whereis 명령은 echo 에있는 이진 실행 파일입니다 /bin 예배 규칙서.
해당 버전을 사용하려면 echo 명령 행에서 실행 파일의 경로를 제공하여 명시 적으로 호출해야합니다.
/bin/echo --version

내장 쉘은 --version 커맨드 라인 인수는 터미널 창에서 반복합니다.
echo --version

여기에 표시된 예제는 모두 기본 버전의 echoBash 셸에서
터미널에 텍스트 쓰기
터미널 창에 간단한 텍스트 문자열을 쓰려면 다음을 입력하십시오. echo 표시하려는 문자열 :
echo My name is Dave.

본문은 우리를 위해 반복됩니다. 그러나 실험을하면서 곧 상황이 조금 더 복잡해질 수 있음을 알게 될 것입니다. 이 예를보십시오 :
echo My name is Dave and I'm a geek.

터미널 창에 > 서명하고 거기에 앉아 기다리고 있습니다. Ctrl + C를 누르면 명령 프롬프트로 돌아갑니다. 거기서 무슨 일이 있었 니?
“I 'm”이라는 단어의 작은 따옴표 또는 아포스트로피 echo. 작은 따옴표는 인용 된 텍스트 섹션의 시작으로 해석했습니다. 작은 따옴표를 감지하지 못했기 때문에 echo 더 많은 입력을 기다리고있었습니다. 대기중인 누락 된 작은 따옴표를 포함하도록 추가 입력을 예상했습니다.
문자열에 작은 따옴표를 포함 시키려면 가장 간단한 해결책은 전체 문자열을 큰 따옴표로 묶는 것입니다.
echo "My name is Dave and I'm a geek."

텍스트를 큰 따옴표로 묶는 것이 일반적인 조언입니다. 스크립트에서 전달하는 매개 변수를 명확하게 구분합니다. echo. 이를 통해 읽기 및 디버깅 스크립트를 훨씬 쉽게 수행 할 수 있습니다.
문자열에 큰 따옴표를 포함하려면 어떻게해야합니까? 간단합니다. 백 슬래시 만 넣으면됩니다. 큰 따옴표 앞에 (공백 없음).
echo "My name is Dave and I'm a "geek.""

이것은 “geek”이라는 단어를 큰 따옴표로 묶습니다. 더 많은 것을 볼 수 있습니다 백 슬래시 이스케이프 처리 곧 문자.
에코와 함께 변수 사용
지금까지 터미널 창에 미리 정의 된 텍스트를 작성했습니다. 변수를 사용할 수 있습니다 echo 보다 역동적이고 쉘에 의해 값이 삽입 된 출력을 생성합니다. 이 명령으로 간단한 변수를 정의 할 수 있습니다.
my_name="Dave"
라는 변수 my_name 생성 된. “Dave”라는 텍스트 값이 할당되었습니다. 전달할 문자열에 변수 이름을 사용할 수 있습니다 echo 변수의 값이 터미널 창에 기록됩니다. 달러 기호를 넣어야합니다 $ 변수 이름 앞에 echo 변수라는 것을 알고 있습니다.
경고가 있습니다. 문자열을 작은 따옴표로 묶은 경우 echo 모든 것을 문자 그대로 취급합니다. 변수를 가지려면 값 표시되지 않고 이름 변수의 경우 큰 따옴표를 사용하십시오.
echo 'My name is $my_name'
echo "My name is $my_name"

어쨌든 반복 할 가치가 있습니다.
- 사용 단일 따옴표는 텍스트를 터미널 창에 씁니다. 오자 패션.
- 사용 더블 따옴표는 변수 확장이라고도하는 변수를 해석하고 값 터미널 창에 기록됩니다.
관련 : Bash에서 변수로 작업하는 방법
echo와 함께 명령 사용
우리는 명령을 사용할 수 있습니다 echo 터미널 창에 쓰여지는 문자열에 출력을 통합하십시오. 달러 기호를 사용해야합니다 $ 명령이 변수 인 것처럼 전체 명령을 괄호로 묶습니다.
날짜 명령을 사용하겠습니다. 한 가지 팁은 명령을 사용하기 전에 명령을 자체적으로 사용하는 것입니다 echo. 이렇게하면 명령 구문에 문제가있는 경우 명령 구문에 문제를 포함시키기 전에 명령을 식별하고 수정합니다. echo 명령. 그런 다음 echo 명령은 예상대로 수행되지 않습니다. 문제는 echo 명령 구문이 이미 입증되었으므로
따라서 터미널 창에서 다음을 시도하십시오.
date +%D

그리고 날짜 명령에서 예상 한 결과를 얻었으므로이를 통합하여 echo 명령:
echo "Today's date is: $(date +%D)"

명령은 괄호와 달러 기호 안에 있습니다. $ 첫 번째 괄호 바로 앞에 있습니다.
에코를 사용하여 텍스트 서식 지정
그만큼 -e (백 슬래시 이스케이프 사용) 옵션을 사용하면 일부 백 슬래시 이스케이프 문자를 사용하여 텍스트의 레이아웃을 변경할 수 있습니다. 사용할 수있는 백 슬래시 이스케이프 문자는 다음과 같습니다.
- ㅏ: 경고 (역사적으로 BEL이라고 함). 기본 경고음이 발생합니다.
- 비: 백 스페이스 문자를 씁니다.
- 씨: 추가 출력을 포기합니다.
- 이자형: 이스케이프 문자를 씁니다.
- 에프: 용지 공급 문자를 씁니다.
- 엔: 새 줄을 씁니다.
- 아르 자형: 캐리지 리턴을 씁니다.
- 티: 가로 탭을 씁니다.
- V: 세로 탭을 씁니다.
- \: 백 슬래시 문자를 씁니다.
그들 중 일부를 사용하고 그들이 무엇을 보자.
echo -e "This is a long line of textnsplit across three linesnwithttabstontthetthirdtline"

텍스트는 새로운 줄로 분할되어 n 문자와 탭이 사용 된 곳에 삽입됩니다. t 문자.
echo -e "Herevarevverticalvtabs"

처럼 n 줄 바꿈 문자, 세로 탭 v 텍스트를 아래 줄로 이동합니다. 그러나 달리 n 줄 바꿈 문자 v 세로 탭은 열 0에서 새 줄을 시작하지 않습니다. 현재 열을 사용합니다.
그만큼 b 백 스페이스 문자는 커서를 한 문자 뒤로 이동합니다. 터미널에 쓸 텍스트가 더 있으면 해당 텍스트가 이전 문자를 덮어 씁니다.
echo -e "123b4"

“3”은 “4”로 덮어 씁니다.
그만큼 r 캐리지 리턴 문자 원인 echo 현재 행의 시작 부분으로 돌아가서 열 0에서 추가 텍스트를 작성합니다.
echo -e "123r456"

“123”문자는“456”문자로 덮어 씁니다.
그만큼 a 경고 문자는 “삐”소리를냅니다. 현재 테마에 기본 경고음을 사용합니다.
echo -e "Make a bleepa"

그만큼 -n (줄 바꿈 없음) 옵션은 백 슬래시 이스케이프 처리 된 시퀀스가 아니지만 텍스트 레이아웃의 코스메틱에 영향을 미치므로 여기서 논의하겠습니다. 방지 echo 텍스트 끝에 줄 바꿈을 추가합니다. 명령 프롬프트는 터미널 창에 쓰여진 텍스트 바로 뒤에 나타납니다.
echo -n "no final newline"

파일 및 디렉토리와 함께 에코 사용
당신이 사용할 수있는 echo 가난한 사람의 버전으로 ls. 당신이 사용할 때 당신의 옵션은 거의 없습니다 echo 이렇게 어떤 종류의 충실도 또는 정밀한 제어가 필요한 경우 사용하는 것이 좋습니다 ls 옵션의 군단.
이 명령은 현재 디렉토리의 모든 파일과 디렉토리를 나열합니다.
echo *
이 명령은 이름이 “D”로 시작하는 현재 디렉토리의 모든 파일과 디렉토리를 나열합니다.
echo D*
이 명령은 현재 디렉토리에있는 모든 “.desktop”파일을 나열합니다.
echo *.desktop

네. 이것은 재생되지 않습니다 echo의 강점. 사용하다 ls.
에코를 사용하여 파일에 쓰기
우리는에서 출력을 리디렉션 할 수 있습니다 echo 텍스트 파일을 만들거나 기존 텍스트 파일에 쓸 수 있습니다.
우리가 > 경로 재 지정 연산자, 파일이 없으면 작성됩니다. 파일이 존재하면 echo 파일의 시작 부분에 추가되어 이전 내용을 덮어 씁니다.
우리가 >> 경로 재 지정 연산자, 파일이 없으면 작성됩니다. 의 출력 echo 파일 끝에 추가되며 파일의 기존 내용을 덮어 쓰지 않습니다.
echo "Creating a new file." > sample.txt
echo "Adding to the file." >> sample.txt
cat sample.txt
logfile.txt
cat logfile.txt
터미널 창의 logfile.txt “width =”646 “height =”132 “onload =”pagespeed.lazyLoadImages.loadIfVisibleAndMaybeBeacon (this); “onerror =”this.onerror = null; pagespeed.lazyLoadImages.loadIfVisibleAndMaybeBeacon (this); ” >
우리의 로그 파일은 우리를 위해 만들어졌습니다. cat 날짜 스탬프와 타임 스탬프가 모두 추가되었음을 보여줍니다.
관련 : Linux에서 stdin, stdout 및 stderr는 무엇입니까?
에코의 레퍼토리
간단한 명령이지만 필수 불가결합니다. 존재하지 않는다면 발명해야합니다.
제우스의시나 니건은 결국 좋은 일을했습니다.








