鱼香rose'Blog

shell语法

\(\Huge{Linux-shell语法}\)

概论

shell是我们通过命令行与操作系统沟通的语言。

shell脚本可以直接在命令行中执行,也可以将一套逻辑组织成一个文件,方便复用。
AC Terminal中的命令行可以看成是一个“shell脚本在逐行执行”。

Linux中常见的shell脚本有很多种,常见的有:

  • Bourne Shell(/usr/bin/sh/bin/sh)
  • Bourne Again Shell(/bin/bash)
  • C Shell(/usr/bin/csh)
  • K Shell(/usr/bin/ksh)
  • zsh

Linux系统中一般默认使用bash,文件开头需要写#! /bin/bash,指明bash为脚本解释器。

注释

# 单行注释
:<<string
多行注释,string可以为任意字符串
<<string

变量

定义变量时等号两边不能加空格。

a1 = 'lbx' # 单双引号都可定义字符串,也可不加引号;只有双引号的字符串可以进行操作
readonly a1 
declare -r a1	# 将变量变为只读,之后再次赋值会报错
unset a1		# 删除变量
# 自定义变量改为环境变量
export a1
declare -x a1
# 环境变量改为自定义变量
export a1 = 'lbx'
declare +x name
echo ${#a1}		# 获取字符串长度
echo ${a1:0:2}	# 提取子串

默认变量

#! /bin/bash			# 在文件中写
echo "FileName:"$0		# $x表示第x个参数,$0是文件名(包含路径)
ehco "parameter_1"$1
ehco "parameter_2"$2
chmod +x test.sh		# 编译
./test.sh 114 514		# 执行并传参数
参数 说明
$# 代表文件传入的参数个数
$* 由所有参数构成的用空格隔开的字符串
$@ 每个参数分别用双引号括起来的字符串
`$ 参数
------------ ------------------------------------------------------------
     | 脚本当前运行的进程ID                                         |

| $? | 上一条命令的退出状态(注意不是stdout,而是exit code)。0表示正常退出,其他值表示错误 |
| $(command) | 返回command这条命令的stdout(可嵌套) |
| command | 返回command这条命令的stdout(不可嵌套) |

数组

数组中可以存放多个不同类型的值,只支持一维数组,初始化时不需要指明数组大小。数组下标从\(0\)开始。

array=(1 ab "def" lbx)	# 两种定义方式
array[0]=1
${array[index]}			# 读取某个元素的值,index为@或*时表示读取整个数组
${#array[@]}			# 数组长度

expr命令


read命令

echomignling

printf命令

test命令与判断符号[]

判断语句

循环语句

函数

exit命令

文件重定向

引入外部脚本

posted @ 2026-01-15 22:12  鱼香_rose  阅读(1)  评论(0)    收藏  举报