저는 방금 Linux 터미널의 기본 사항을 배우기 시작했고 터미널 명령을 쉘 스크립트로 변환하는 것에 대해 약간 혼란스러워합니다. Linux 터미널에서 스크립트 파일을 생성하고 다음 코드의 셸 스크립트 버전을 생성하려면 어떻게 해야 합니까?
curl -O https://people.sc.fsu.edu/~jburkardt/data/csv/cities.csv
head -n 12 cities.csv
답변1
텍스트 편집기를 사용하여 스크립트 만들기
스크립트는 텍스트 파일에 저장됩니다. 예를 들어 gedit
다음과 같이 텍스트 편집기에서 만들 수 있습니다 nano
.
$ nano yourscript.sh
일반 파일 이름 및파일 확장자가 특히 중요합니다. 스크립트 파일에서 다음을 수행해야 합니다.인터프리터 실행 파일을 선언하여 실행합니다(shebang).. 그런 다음 코드를 추가하세요. 에 스크립트를 저장하려면 +를 nano
누른 다음 입력 하고 을 클릭합니다 .CtrlXy
Enter
스크립트를 작성하세요
스크립트에 인수를 전달하는 경우 코드에서 숫자로 해당 인수를 참조할 수 있습니다(전달된 첫 번째 인수는 $1
, 두 번째 인수는 $2
등). $0
스크립트 자체의 이름입니다.
기본 원칙으로는,변수 주위에는 항상 큰따옴표를 사용하십시오..
코드를 예로 들면 스크립트는 다음과 같습니다.
#! /usr/bin/bash
curl -O "$1"
head -n 12 cities.csv
뒤에 공간이 있을 수 있어요#!
, 하지만 꼭 필요한 것은 아닙니다. 대부분의 경우 $0
터미널에서 변수를 확인할 수 있습니다.쉘 실행 파일은 터미널의 명령을 해석합니다.:
$ type $0
bash is /usr/bin/bash
코드 개선
파일의 처음 12줄만 다운로드하면 된다고 가정하면 다음과 같이 할 수 있습니다.다운로드한 파일 저장 건너뛰기디스크에 그리고다음 명령으로 파이프하십시오.:
#! /usr/bin/bash
curl -s "$1" | head -n 12
보너스로 스크립트에서 파일 이름을 생략할 수 있습니다.
스크립트 실행
스크립트를 로 저장했다고 가정하고 yourscript.sh
먼저 실행할 권한을 추가하세요.
$ chmod +x yourscript.sh
그런 다음 실행하려면 경로를 지정하고 매개변수를 제공해야 합니다. 현재 디렉터리에 있는 경우 앞에 다음을 추가하여 경로를 지정할 수 있습니다 ./
.
$ ./yourscript.sh 'https://people.sc.fsu.edu/~jburkardt/data/csv/cities.csv'
답변2
프롬프트에 하나씩 입력하는 모든 명령은 간단히 스크립트 파일에 넣어 한 번만 실행할 수 있습니다.
유일한 요구 사항은 파일 시작 부분에 있어야 하는 해석기 줄입니다.
#!/bin/sh
#!/bin/bash
bash( ) 또는 zsh(#!/bin/zsh
) 와 같은 다른 스크립트를 스크립팅할 수 있습니다.실행하여 스크립트를 실행 가능하게 만듭니다
chmod +x scriptFile.sh
(스크립트 파일임을 나타내는 sh 확장자를 사용하는 것이 좋습니다).다음을 통해 스크립트를 실행하세요.
./scriptFile.sh
scriptFile.sh
선택 사항: PATH 변수에 디렉터리 경로를 추가하면 다른 쉘 명령과 마찬가지로 호출하여 모든 디렉터리에서 스크립트를 실행할 수 있습니다 ls
.cat