셸 스 크 립 트 변수, 배열 과 함수
(1) 변수
(1) 변수의 정의
##等号两边不能有空格
value=123
value="jing"
declare -i value=100
(3) 변수의 역할 영역
#! /bin/bash
func()
{
echo "global v1 is $v1" #输出200全局变量
local v1=100 #局部变量只在函数内有效
echo local v1 is $v1 #输出100
}
vi=200
func
echo global v1 is $v1 #输出200
(3) 시스템 변수
그러나 스 크 립 트 를 전송 할 때 매개 변수의 값 은 시스템 변수 에 저 장 됩 니 다.
(1) 정의 배열
(2) 배열 길이 ${\# arr [@]} 가 져 오기
(3) 모든 요 소 를 가 져 옵 니 다 ${arr [@]}
(4) 일부 요 소 를 캡 처 ${arr [@]: start: length}
(5) 배열 요소 의 값 을 바 꿉 니 다 ${arr [@]/val/replace}
(6) 배열 및 요소 unset arr, unset arr [n] 삭제
(7) 할당 배열 newarr = ("${arr [@]}")
(8) 링크 배열 newarr = ("arr1 [@]"{arr2 [@]} ") 두 그룹 사이 에 빈 칸 이 있 습 니 다.
(8) 배열 arr = ($(cat "filename") 에 파일 내용 불 러 오기
(3) 함수
(1) 함수 의 정의
function function_name()
{
statement
...
}
혹시
function_name()
{
statement
...
}
(2) 함수 호출
function_name 参数1 参数2 .....
(3) 반환 값 은 return 으로 되 돌아 갈 수 있 지만 0 - 255 사이 의 수 만 되 돌아 갈 수 있 습 니 다.
예 를 들 면:
#! /bin/bash
func()
{
val=$((11+22))
return $val
}
func
echo $? #系统变量获得返回值
(4) 함수 의 매개 변수
예 를 들 면:
#! /bin/bash
func()
{
val=$(($1+$2)) #如果函数参数超过9时,要使用$(10)才行
return $val
}
func 22 33 #传递参数
echo $? #系统变量获得返回值
인자 가 너무 많 으 면 shift 이동 파 라 메 터 를 사용 할 수 있 습 니 다. 그 기능 은 파 라 메 터 를 왼쪽으로 이동 시 키 고 원래 의 첫 번 째 파 라 메 터 를 삭제 하 는 것 입 니 다. 따라서 shift 가 한 번 도 $\# 를 빼 지 않 았 습 니 다. 예 를 들 어:
#! /bin/bash
func()
{
while (($# > 0))
do
echo $(1)
shift
done
}
func 0 1 2 3 5 6 7 8 9 10 #传递参数
때로는 매개 변수 가 너무 많 고 상황 을 나 누 어야 할 때 가 있 습 니 다. 이 때 는 단순 한 전 삼 으로 수 요 를 만족 시 킬 수 없습니다. 이 때 는 다른 함수 가 필요 합 니 다. 매개 변수 getopts (). 일반 형식: getopts optstring args [optstring]"a: b: c"와 같이 알파벳 뒤에 콜론 이 있 으 면 이 옵션 에 매개 변수 값 을 제공 할 수 있 음 을 설명 합 니 다. 또한 이 매개 변 수 는 시스템 변수 $OPTARGS 에 저 장 됩 니 다.
예 를 들 면:
#! /bin/bash
func()
{
while getopts "a:b:c" args
do
case $args in
a)
echo a‘s argument is $OPTARG
;;
b)
echo b‘s argument is $OPTARG
;;
*)
echo "having no argument "
;;
esac
done
}
func -a hello -b world
输出为:
a‘s argument is hello
b‘s argument is world
(5) 함수 라 이브 러 리 파일 의 사용 으로 코드 를 다시 사용 할 수 있 습 니 다.
예 를 들 어 test 1. sh:
#! /bin/bash
fun()
{
if [ $1 -gt $2 ]
then
return $1
else
{
return $2
}
fi
}
이 스 크 립 트 함 수 는 두 수의 크기 를 비교 하여 다른 스 크 립 트 에서 이 함 수 를 호출 합 니 다.
#! /bin/bash
. test.sh #加入库文件
fun 44 22 #直接调用函数
echo $?
일반적으로 스 크 립 트 파일 은 고정된 영역 에 넣 고 호출 할 때 상대 경로 나 절 경 로 를 사용 해 야 스 크 립 트 라 이브 러 리 에 웃 을 수 있 습 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
✨〰️ ZI 〰️✨ Vim 구문❮ ZI ❯ 🧙♀️ Zsh를 위한 스위스 아미 나이프. 모든 것을 함께 붙일 수 있도록 설계되었습니다. zsh 유형의 파일에 있는 명령에 대한 Vim 구문 정의입니다. 📥 설치 Vim 플러그인으로 로드합니다. 예를...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.