일반적으로 관리 또는 파일 관리 작업에 사용하지만 위로 de Linux 그 목적을 훨씬 뛰어 넘어 기능을 확장하여 스크립트 이 가이드는 Bash 프로그래밍에 대한 완전한 참조가 아니라 기본 명령과 구조에 대한 소개로, GNU / Linux 시스템의 성능을 확장 할 수 있습니다. |
"스크립트"란 무엇입니까?
기본적으로 시스템이 특정 작업에 사용하는 특정 프로그래밍 언어로 작성된 코드가 포함 된 파일이라고 말합니다. 외부 입력 또는 그래픽 인터페이스가 필요하지 않지만 처리 된 데이터를 출력해야합니다 (사용자가 보지 않더라도).
Bash에서 사용하는 언어는 자체 인터프리터에 의해 정의되며 Korn Shell (ksh) 또는 C Shell (csh)과 같은 다른 Shell의 구문을 결합합니다. 콘솔에서 일반적으로 사용되는 많은 명령은 특정 배포에 엄격하게 관련된 명령을 제외하고 스크립트에서도 사용할 수 있습니다.
스크립트의 구조
시작하려면 텍스트 편집기가 있어야하며 프로그래밍을 원해야합니다. .sh 확장자로 저장 한 파일은 첫 번째 줄이 다음과 같은 한 콘솔에서 실행 (또는 해석) 할 수 있습니다.
#! / bin / bash
이것은 파일을 실행하기 위해 콘솔을 사용하도록 시스템에 지시합니다. 또한 # 문자를 사용하여 주석을 작성할 수 있습니다. 가장 간단한 예를 만들기 위해 다음 이미지와 같이 한 줄을 더 추가합니다.
echo 명령은 화면에 메시지를 표시합니다.이 경우 일반적인 "Hello world!" 저장하고 콘솔로 실행하면 결과를 볼 수 있습니다.
기본 명령
다음 명령은 일반적이며 모든 유형의 프로그램에 매우 유용합니다. 더 많은 것이 있음을 명확히하지만 지금은 다음을 다룰 것입니다.
별칭 : 단어 문자열을 더 짧은 단어로 대체하여 코드를 줄일 수 있습니다.
## Downloads 폴더 별칭 per = '/ home / user / Downloads'의 주소로 per라는 별칭을 생성합니다. unalias unalias per
break : for, while, until 또는 select 루프를 즉시 종료 할 수 있습니다 (루프에 대해서는 나중에 자세히 살펴 보겠습니다).
# 1에서 5까지의 숫자를 할당 할 루프를 만듭니다. # 1 2 3 4 5의 카운터에 대한 각 "루프의 회전"에 대해 # 문자 $로 분석되는 변수 #counter의 현재 값을 인쇄합니다. echo "$ counter"# 카운터 값이 3이면 [$ counter –eq 3] then # break는 break fi done에 대한 루프를 종료합니다.
계속-현재 루프를 무시하고 다음 루프로 이동한다는 점을 제외하면 break와 유사합니다.
# 1부터 5까지의 숫자를 할당 할 루프를 만듭니다. # 1 2 3 4 5의 카운터에 대한 "루프의 회전"마다 # 카운터 값이 3이면 [$ counter –eq 3] then # 계속은 다음 라운드로 건너 뛰어 나머지 #current주기가 분석되는 것을 방지합니다. 즉, #value 3이 인쇄되지 않습니다. 계속 fi echo "$ counter"완료
선언 : 조판처럼 변수를 선언하고 값을 할당합니다 (동일한 방식으로 작동 함). 몇 가지 옵션과 결합 할 수 있습니다. -i는 정수를 선언합니다. -r 값을 변경할 수없는 읽기 전용 변수의 경우; –A는 어레이 또는 "어레이"입니다. -f 기능; -x는 스크립트 자체의 환경 외부에서 "내보낼"수있는 변수의 경우입니다.
선언 –i num = 12 선언 –x pi = 3.14
help : 특정 명령에 대한 도움말을 표시합니다.
작업 : 실행중인 프로세스를 표시합니다.
# –c를 사용하면 명령 이름이 표시되고 –p # 각 프로세스의 pid (프로세스 ID)가 표시됩니다. 작업 -cp
let : 산술 식 평가
let a = 11 let a = a + 5 # 마지막으로 우리는 16의 값을 출력합니다. echo "11 + 5 = $ a"
local : 오류를 방지하기 위해 스크립트 자체의 기능에서 사용하는 것이 좋습니다. 선언 명령과 동일한 기능을 사용할 수 있습니다.
local v1 = "이것은 지역 변수입니다"
logout : 셸에서 완전히 로그 아웃 할 수 있습니다. 둘 이상의 셸 창으로 작업하는 경우에 유용합니다. 여기서 exit 명령은 한 번에 하나의 창만 종료 할 수 있도록합니다.
printf : 데이터를 인쇄하고 포맷 할 수 있습니다. 많은 옵션이 있으므로 몇 가지를 언급하겠습니다.
# % f는 부동 숫자로 인쇄하고, n은 새 행에 대해 인쇄합니다. printf "% fn"5 5.000000 # & d는 20 진수를 인수로 전달할 수 있습니다. printf "% d 개의 주문이 % d 달러로 평가됩니다 .n"500 20 달러 상당의 주문 500 건.
읽기 : 표준 입력에서 한 줄을 읽습니다 (예 : 키보드를 통해 데이터를로드하는 데 사용되는 모듈). 다음과 같은 옵션을 전달할 수 있습니다. -t 읽기 제한 시간을 제공합니다. -a 각 단어가 aname 배열의 위치에 할당되도록합니다. -d 행 끝에 기록되는 구분 기호를 사용합니다. 다른 사람들 중에서.
echo "이름을 입력하고 ENTER를 누르세요"# 변수 이름 읽기 이름 읽기 echo "이름은 $ 이름입니다"
유형 : 명령과 그 동작을 설명합니다. 각 명령에 대한 데이터 정의를 찾는 것이 유용 할 수 있습니다.
type –a '['#type은 [쉘 내장 명령입니다 [쉘 내장 명령입니다. # -a는 이름이 입력 된 실행 파일이 포함 된 디렉토리를 # 찾는 것을 허용합니다. [is / usr / bin / [
ulimit : 특정 시스템 리소스의 액세스 및 사용을 프로세스로 제한하며, 관리 변경을 허용하거나 다른 유형의 사용자를 대상으로하는 프로그램에 이상적입니다. 한계를 설정할 때 한계의 킬로바이트를 나타내는 숫자를 작성합니다.
# 우리는 현재 한계를 볼 수 있습니다. ulimit –a # -f는 사용자가 512000 Kb (500 #Mb)보다 큰 파일을 만들 수 없도록 제한합니다. ulimit –f 512000 # -v는 프로세스의 가상 메모리를 제한합니다. ulimit –v 512000
대기 : 특정 프로세스 또는 작업이 계속 진행될 때까지 기다립니다.
# 스크립트는 pid # 2585 프로세스가 수행되기를 기다립니다.
2585 대기
스크립트에 추가 할 수있는 다른 유용한 명령은 기호로 표시됩니다.
!! : 마지막 명령을 다시 실행하십시오.
wer : "wer"표현식으로 시작된 마지막 명령을 실행합니다.
'==', '! =', '>', '<', '> ='및 '<=': 관계 연산자.
| : 두 개의 정규식을 결합하는 데 일반적으로 사용되는 OR 연산자입니다.
: 표현식의 형식을 지정할 수있는 이스케이프 명령입니다. 예 : a는 소리 경고, n은 줄 바꿈, b는 백 스페이스 등입니다.
큰! 어쨌든, 2 개의 코멘트 : Ubuntu 태그는 일반적인 것을 일반화하기 때문에 절반이 너무 많습니다. 그리고이 튜토리얼이 계속 발전한다면 서로 연결되어 있으면 좋을 것입니다….
그 외에는이 움직임이 흥미 롭다!
좋은 공헌! 큰!
문제에 대해 더 자세히 알고 싶은 사람들을위한 참조 만 누락되었습니다. 우리 나라에서 찾기 쉽지는 않지만 좋은 것들은
-Linux 명령, 편집기 및 쉘 프로그래밍에 대한 실용적인 가이드, Mark Sobell (8 장)
-Pro Bash Programming, Chris FA Johnson (이는 다른 참고 자료 나 조금 더 많은 지식이있는 사람들을위한 것이지만).
좋은 기사.
좋은 데이트! 감사합니다!
: @ "다음으로 로그인"기능은 이전 댓글을 삭제 했으므로 더 자세히 요약하겠습니다.
작업 -cp
bash : 작업 : -c : 잘못된 옵션
jobs : 사용법 : jobs [-lnprs] [jobspec…] 또는 jobs -x 명령 [args]
-eq -gt -lt는 포럼과 포럼 사이에서 소수점 변수를 허용하지 않습니다. bc가 좋은 동맹이라는 것을 발견했습니다.
if [`echo 9.999> 10 | bc` -eq 1]; 그때
echo "9.999가 10보다 큽니다. 프로세서가 계속 작동하는지 확인하십시오."
그렇지 않으면
echo«9.999는 10보다 크지 않으며 모든 것이 정상적으로 작동합니다.
fi
이 게시물은 bash 스크립팅의 모든 일반성을 매우 잘 요약합니다.
http://www.aboutlinux.info/2005/10/10-seconds-guide-to-bash-shell.html
이 사이트에서 bash 특성에 대한 많은 질문과 답변을 찾을 수 있습니다.
http://unix.stackexchange.com/questions/tagged/bash
다음은 정말 멋진 스크립트입니다. 다른 사람의 스크립트를 읽고 배울 수 있습니다.
http://snipplr.com/search.php?q=bash&btnsearch=go
bash를 제외하고는 당신이 말하는 것에 맞습니다. 내가 본 모든 시스템에는 / bin / bash에 bash가 있습니다.
그러나 python, perl, ruby 등의 경우에는 사용하는 것이 좋습니다. 나는한다
우연히도 대학에서 우리는 bash 스크립팅을 사용하므로 데이터는 10입니다.
PDF 버전을 다운로드하면 좋을 것입니다! 😀
아주 좋은 사이트입니다. 마침내 유용한 것을 찾았습니다. 감사합니다.