From 850d46300f2693597506d30ab97f874ddd53c8c7 Mon Sep 17 00:00:00 2001 From: flykhan Date: Sat, 17 Jun 2023 14:55:12 +0800 Subject: [PATCH] =?UTF-8?q?=E6=A6=82=E8=AE=BA&=E6=B3=A8=E9=87=8A&=E5=8F=98?= =?UTF-8?q?=E9=87=8F&=E9=BB=98=E8=AE=A4=E5=8F=98=E9=87=8F&=E6=95=B0?= =?UTF-8?q?=E7=BB=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Arrays.sh | 42 +++++++++++++++++++++++++++++ DefaultVars.sh | 34 +++++++++++++++++++++++ Intro_Comments.sh | 22 +++++++++++++++ Vars.sh | 69 +++++++++++++++++++++++++++++++++++++++++++++++ 4 files changed, 167 insertions(+) create mode 100644 Arrays.sh create mode 100644 DefaultVars.sh create mode 100644 Intro_Comments.sh create mode 100644 Vars.sh diff --git a/Arrays.sh b/Arrays.sh new file mode 100644 index 0000000..ea84d38 --- /dev/null +++ b/Arrays.sh @@ -0,0 +1,42 @@ +#! /bin/bash +# 数组 +# 数组中可以存放多个不同类型的值,只支持一维数组,初始化时不需要指明数组大小.数组下标从0开始 + +# 定义 +# 数组用小括号表示,元素之间用空格隔开.例如: +array=(1 abc "def" yxc) + +# 也可以直接定义数组中某个元素的值: +array[0]=1 +array[1]=abc +array[2]="def" +array[3]=yxc + +# 读取数组中某个元素的值 +# 格式 +# ${array[index]} +# 例如: +array=(1 abc "def" yxc) +echo ${array[0]} +echo ${array[1]} +echo ${array[2]} +echo ${array[3]} + +# 读取整个数组 +# 格式 +# ${array[@]} # 第一种写法 +# ${array[*]} # 第二种写法 +# 例如: +array=(1 abc "def" yxc) +echo ${array[@]} # 第一种写法 +echo ${array[*]} # 第二种写法 + +# 数组长度 +# 类似于字符串 +# 格式 +# ${#array[@]} # 第一种写法 +# ${#array[*]} # 第二种写法 +# 例如: +array=(1 abc "def" yxc) +echo ${#array[@]} # 第一种写法 +echo ${#array[*]} # 第二种写法 diff --git a/DefaultVars.sh b/DefaultVars.sh new file mode 100644 index 0000000..73c1e92 --- /dev/null +++ b/DefaultVars.sh @@ -0,0 +1,34 @@ +#! /bin/bash +# 默认变量 + +# 文件参数变量 +# 在执行shell脚本时,可以向脚本传递参数.$1是第一个参数,$2是第二个参数,以此类推.特殊的,$0是文件名(包含路径).例如: + +echo "文件名: " $0 +echo "第一个参数: " $1 +echo "第二个参数: " $2 +echo "第三个参数: " $3 +echo "第四个参数: " $4 + + +# 其它参数相关变量 +# $# 代表文件传入的参数个数,如上例中值为4 +echo "参数个数: " $# + +# $* 由所有参数构成的用空格隔开的字符串,如上例中值为"$1 $2 $3 $4" +echo "参数构成的空格隔开的字符串: " $* + +# $@ 每个参数分别用双引号括起来的字符串,如上例中值为"$1" "$2" "$3" "$4" +echo "参数分别用双引号括起来的字符串: " $@ + +# $$ 脚本当前运行的进程ID +echo "脚本当前运行的进程ID: " $$ + +# $? 上一条命令的退出状态(注意不是stdout,而是exit code). 0表示正常退出,其他值表示错误 +echo "上一条命令的退出状态: " $? + +# $(command) 返回command这条命令的stdout(可嵌套) +echo "命令测试: " $(echo "哈哈") + +# 'command' 返回command这条命令的stdout(不可嵌套) +echo "命令测试2: " 'tree' diff --git a/Intro_Comments.sh b/Intro_Comments.sh new file mode 100644 index 0000000..9d86375 --- /dev/null +++ b/Intro_Comments.sh @@ -0,0 +1,22 @@ +#! /bin/bash +# 这是一行注释 + +echo "Hello World!" # 这也是注释 + +:<