실행 시 stdou에 "I should learn"이라는 단어를 표시하는 스크립트를 어떻게 작성합니까?

실행 시 stdou에 "I should learn"이라는 단어를 표시하는 스크립트를 어떻게 작성합니까?

실행 시 표준 출력에 "I should learn"이라는 단어를 인쇄하는 스크립트의 내용을 어떻게 입력합니까?

최선의 시도는 다음과 같습니다.

#!/bin/bash
$ echo "I should have studied" | grep studied

쉘이 내 명령을 실행하려면 첫 번째 명령문이 필요하다는 것을 알고 있습니다. 두 번째에서는 echo를 사용하여 인쇄한 다음 해당 명령의 파이프 연산자를 다른 명령의 입력으로 리디렉션합니다. 또한 "grep"을 사용하여 해당 목록에서 문자열 디렉터리가 포함된 행을 찾아 해당 행을 표준 출력으로 보냅니다. 나는 발전하고 있나요?

답변1

쉘에 직접 입력하면 다음을 수행할 수 있습니다.

echo "I should have studied"

스크립트를 생성하려면 실행하려는 명령을 (텍스트) 파일에 넣고 해당 파일을 사용하기만 하면 됩니다.

선호하는 UNIX/Linux 편집기를 사용하여 파일을 생성하십시오 study. 원하는 이름( .sh또는 원하는 경우 접미사가 있는 이름)을 사용할 수 있습니다. 이 두 줄을 추가하세요

#!/bin/bash
echo "I should have studied"

첫 번째 줄은 쉘 스크립트임을 선언합니다 bash. 명령 자체 grepecho충분하므로 출력을 필터링할 필요가 없습니다 . (또한 선두를 입력하지 않았다는 점에 유의하십시오 $. 어떤 사람들은 명령을 입력하고 있음을 보여주기 위해 StackExchange 및 기타 사이트에서 이것을 사용하지만 개인적으로 혼란스럽다고 생각합니다.) 이제 파일을 실행 가능하게 만들어 다른 것과 마찬가지로 사용할 수 있습니다. 기타 프로그램처럼 시스템을 실행

chmod +x study

그리고 그것을 실행

./study

선행 비트는 ./쉘이 현재 디렉토리에서 명령을 찾도록 지시합니다. 스크립트가 시스템 디렉터리나 검색 경로( $PATH) 에 있는 경우 study다른 명령과 마찬가지로 간단히 이름을 입력하여 실행할 수 있습니다.

구문 검사를 위해 다음을 사용하는 것을 두려워하지 마십시오.https://shellcheck.net/스크립트 개발이 시작될 때.

관련 정보