5분 안에 셸 스크립트 배우기
스크립트라는 텍스트 파일을 만듭니다.sh 파일 확장자 (필요하지 않음), 다음 내용을 추가합니다.
#!/bin/bash
echo "Hello, World!"
다음 명령을 실행하여 방금 만든 셸 스크립트를 실행해야 합니다.sudo chmod +x script.sh
현재, 스크립트를 실행해서 사용할 수 있습니다source script.sh
Hello, world!
코멘트모든 다른 프로그래밍 언어와 마찬가지로 스크립트의 기능을 정확하게 설명하기 위해 스크립트에 주석을 추가할 수 있습니다.Bash 스크립트는 한 줄 및 여러 줄 주석을 지원합니다.
단행설
#!/bin/bash
# This is a single line comment
echo "Hello, world!"
다행평론#!/bin/bash
: '
This is a multi-line comment
spanning not just one line
but many lines
'
echo "Hello, world!"
변량Bash에는 두 가지 유형의 변수가 있습니다.
#!/bin/bash
message="Shell scripting tutorial"
echo $message
#!/bin/bash
echo $BASH_VERSION
기본 Bash 변수는 다음과 같습니다.$$- 현재 셸의 PID
$! - 마지막 백그라운드 명령의 PID
$? - 마지막 명령의 종료 상태
$0- 현재 명령의 이름
$1-현재 명령의 첫 번째 매개 변수의 이름
$9- 현재 명령의 아홉 번째 매개 변수의 이름
$@- 현재 명령의 모든 매개변수(공백 및 따옴표 유지)
$* - 현재 명령의 모든 매개변수(공백 및 따옴표 없음)
서식 적용 변수
# The string 'Not defined' is printed if the variable "message" has not been defined.
echo ${message:-"Not defined"}
# The string "Not defined but now defined and assigned", if the variable did not exist prior.
echo ${message:="Not defined but now defined and assigned"}
# The string "Error: the variable does not exist" is printed if you try to print a variable does not exist.
echo ${message:?"Error: the variable does not exist"}
var1='shell scripting'
var2='BASH SCRIPTING'
echo ${var1^^} # Print a variable in all uppercase.
echo ${var1^} # Convert the first letter to uppercase.
echo ${var2,,} # Print a variable in all lowercase.
echo ${var2,} # Convert the first letter to lowercase.
순환하다순환하는 C 스타일.
#!/bin/bash
for ((i=0; i<10; i++))
do
echo $i
done
반복되는 파이썬 스타일#!/bin/bash
for number in "1 2 3 4 5"
do
echo $number
done
While 주기#!/bin/bash
count=0
while [[ $count -lt 10 ]]
do
echo $count
(( count++ ))
done
순환할 때까지#!/bin/bash
count=10
until [[ $count -eq 0 ]]
do
echo $count
(( count-- ))
done
선택 주기셸 스크립트를 만드는 메뉴 형식 인터페이스를 선택할 수 있습니다.
#!/bin/bash
options="Yes No Maybe"
ps3="Select your option" # Customize your menu selection.
select option in $options
do
if [[ $option == "Yes" ]]
then
echo "You chose Yes"
elif [[ $option == "No" ]]
then
echo "You chose No"
exit
elif [[ $option == "Maybe" ]]
then
echo "You chose Maybe"
else
echo "Invalid option chosen"
exit
fi
done
조건문Bash는 다른 프로그래밍 언어에서 자주 사용하는if, elif,else 조건 연산자를 지원합니다.
지원되는 Bash 비교 연산자는 다음과 같습니다.
정수 비교 연산자
- 흥정은
-ne은 같지 않습니다.
-gt 이상
- ge가 크거나 같음
- 아니요
-le 작거나 같음
<보다 작음 - 괄호 안에 놓기
<= 작거나 같음
> 보다 큼
>= 크거나 같음
문자열 비교 연산자
... 과 같다
==는
= 같지 않음
< ASCII 미만 알파벳 순서
> ASCII보다 큰 알파벳 순서
-z 문자열이 비어 있음(즉, 길이가 0임)
- n 문자열이 비어 있지 않습니다(즉,! 길이는 0).
복합 비교 연산자
- 논리 및
-o 논리 또는
#!/bin/bash
a=1
b=2
if [[ $a -gt $b ]]
then
echo $a is greater than $b
elif [[ $a -lt $b ]]
then
echo $a is less than $b
elif [[ $a -eq $b ]]
then
echo $a is equal to $b
else
echo "unknown condition"
fi
[[ -e "$file" ]] # True if file exists
[[ -d "$file" ]] # True if file exists and is a directory
[[ -f "$file" ]] # True if file exists and is a regular file
[[ -z "$str" ]] # True if string is of length zero
[[ -n "$str" ]] # True is string is not of length zero
-r file has read permission
-w file has write permission
-x file has execute permission
file1 -nt file2 file file1 is newer than file2
file1 -ot file2 file file1 is older than file2
file1 -ef file2 files file1 and file2 are hard links to the same file
[[ ... ]] && [[ ... ]] # And
[[ ... ]] || [[ ... ]] # Or
안건Case 문은 if-elif-else 문장의 집합을 간소화하고 대체할 수도 있고 Select 문장과 함께 사용할 수도 있다.
#!/bin/bash
read -p "Make your choice: " option
case $option in
"Yes")
echo "You chose 'Yes'";;
"Maybe")
echo "You chose 'Maye'";;
"No")
echo "You chose 'No'";;
*) # default option
echo "Unknown option";;
esac
# Create a Menu system with Select and Case
options="Yes No Maybe"
select option in $options
do
case $option in
"Yes")
echo "You chose 'Yes'";;
"Maybe")
echo "You chose 'Maye'";;
"No")
echo "You chose 'No'"
exit;;
*) # default option
echo "Unknown option";;
esac
done
기능Bash의 함수는 일반 프로그래밍 언어의 함수와 유사하지만, 유일한 차이점은 이름만 입력하고 괄호를 사용하지 않고 함수를 실행하는 것이다.또한 Bash 함수에 반환 값이 없습니다.
#!/bin/bash
# Define a simple function
function greeter() {
echo "Hello, world!"
}
# Define a function that accepts arguments
function greeter1() {
echo $1
}
실행greeter
:Hello, World!"
매개 변수를 보내서 함수를 호출합니다greeter Hello, world
:Hello, World!"
사용자 입력기본 및 read 키워드를 사용하여 사용자 입력을 허용할 수 있습니다.
#!/bin/bash
read var # The user inputted value is saved in a variable called *var*
read -p "Enter your name" name # A prompt "Enter your name" is displayed to the user and the supplied value is saved in the variable "name".
read -s -p "Enter your password" password # "This hides the user inputted value. Useful for password inputs.
read -p "Enter all your names" -a names # If you want to accept more than one value from users. It creates an Array object called *names*
산술#!/bin/bash
a=1
b=2
$((a + b)) # Addition
$((a - b)) # Subtraction
$((a * b)) # Multiplication
$((a / b)) # Division
$((a % b)) # Modulus
부동점수 처리, 숫자의 제곱근 구하기 등 고급 산술을 하려면, 내장된 bc 명령을 사용해야 한다.#!/bin/bash
echo "scale=2; sqrt((49)) | bc -l # scale determines the number of decimal places.
echo "scale=3; 3.142 * 4.2" | bc -l
어레이Bash에는 두 가지 변수가 있습니다.
Bash 배열은 0 기반 배열, 즉 0 위치에서 시작합니다.
#!/bin/bash
names=(Jack John Jill Scot)
${names[@]} # This prints all the variables
${#names[@]} # Counts the number of items in the *names* array.
${!names[@]} # Returns the indexes of the items in the array.
unset names[<index>] # Removes the item in the array at the specified index.
${names[0]} # Returns the first item of the array.
${names[-1]} # Returns the last item of the array.
팁, 팁 및 도구bash -x script.sh
. 이것은 디버그 모드에서 스크립트를 실행합니다.#!/bin/bash
set -x
message="This is a shell scripting tutorial"
echo $message
set +x
따라서 Bash shell 스크립트에 대한 5분간의 소개를 마쳤습니다.나는 이것이 너에게 더욱 정통한 여정을 열 수 있기를 바란다.
Reference
이 문제에 관하여(5분 안에 셸 스크립트 배우기), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/pystar/learn-shell-scripting-in-5-minutes-5fk4텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)