常用Linux shell语法

本文介绍了Bashshell中的基本概念,包括echo命令用于屏幕输出,变量与赋值,参数传递方式,以及条件语句(if...fi)的使用,涉及比较运算符和逻辑运算符的应用。

1 echo 命令

echo hello

相当于打印语句,在屏幕上显示hello

2 变量与赋值
可以定义变量,在引用时用$前置符表示是一个变量,比如

name=Andy
echo $name

赋值语句等号两边不能有空格,上面运行结果最后显示$name所表示的内容Andy

3 参数传递
用前置符$后面加上数字来表示参数,如

$1		# 第一个参数
$2		# 第二个参数
$#		# 参数个数

4 条件语句
用if…fi对来表示一个条件判断语句,如

if [ $# -ge 1 ]
then
	echo "arg number: $#"
	echo "arg1: $1"
fi

如上判断参数个数是否大于等于1,如果是则打印参数的个数和第一个参数。其中方括号符号([, ])以及变量、运算符等必须用空格与其它字符隔开,不然语法不通过,条件判断语句有

-eq , =, == 	# 等于
-ne , !=		# 不等于
-gt 			# 大于
-ge 			# 大于等于
-lt 			# 小于
-le 			# 小于等于

其中=和==在逻辑判断语句中是一样的,=和==不仅用于数值的比较,还可以用于字符串的比较,-eq则只能用于数值的比较。逻辑判断的组合语句有

-a			#与(and)
-o			#或(or)
&&			#与(and)
||			#或(and)
!			#非

其中-a,-o在一个方括号之内进行表述,&&和||则在多个方括号语句之间进行运算,如

if [ $1 -ge 1 -a $1 -le 5 ]; then
	echo "arg1: $1"
fi

或者

if [ $1 -ge 1 ] && [ $1 -le 5 ]; then
	echo "arg1: $1"
fi

是同样的意思,其中分号(;)表示把两行语句连在一行,不能忽略。非运算(!)则可以放在括号内,也可以放在括号外。

### Shell脚本常用语法和命令示例 Shell脚本是Linux系统中非常强大的自动化工具,可以简化重复性任务并提高工作效率。以下是一些常见的Shell脚本语法和命令示例。 #### 变量使用 Shell脚本中的变量不需要声明类型,可以直接赋值使用。 ```bash # 定义变量 name="John" age=25 # 使用变量 echo "Name: $name" echo "Age: $age" ``` #### 条件语句 条件语句用于根据条件执行不同的代码块。 ```bash # if语句 if [ $age -ge 18 ]; then echo "$name is an adult." else echo "$name is a minor." fi # case语句 case $name in "John") echo "Hello John!" ;; "Alice") echo "Hello Alice!" ;; *) echo "Unknown user." ;; esac ``` #### 循环语句 循环语句用于重复执行代码块。 ```bash # for循环 for i in {1..5}; do echo "Number: $i" done # while循环 count=1 while [ $count -le 5 ]; do echo "Count: $count" count=$((count + 1)) done ``` #### 运算符 Shell脚本支持多种运算符,包括算术、关系、布尔、逻辑、字符串和文件测试运算符。 ```bash a=10 b=20 # 算术运算符 sum=$((a + b)) echo "Sum: $sum" # 关系运算符 if [ $a -gt $b ]; then echo "a is greater than b" else echo "a is not greater than b" fi # 字符串运算符 str1="Hello" str2="World" if [ $str1 != $str2 ]; then echo "Strings are different" fi # 文件测试运算符 if [ -f "/etc/passwd" ]; then echo "/etc/passwd exists" fi ``` #### 函数 函数可以将代码组织成可重用的模块。 ```bash # 定义函数 greet() { echo "Hello, $1!" } # 调用函数 greet "John" ``` #### 命令示例 以下是一个综合示例,演示了如何使用Shell脚本执行文件操作和系统管理任务。 ```bash #!/bin/bash # 创建目录 mkdir -p /home/user/logs/backup # 复制系统日志 cp /var/log/syslog /home/user/logs/backup/syslog.bak # 修改权限 chmod 600 /home/user/logs/backup/syslog.bak # 查找日志中的错误信息 grep 'error' /home/user/logs/backup/syslog.bak > /home/user/logs/backup/errors.txt # 输出完成信息 echo "日志备份与权限设置完成!" ``` #### 特殊变量 Shell脚本中有一些特殊变量,用于获取脚本的参数和状态信息。 ```bash # $0 获取脚本名称 echo "Script name: $0" # $1, $2, ... 获取脚本参数 echo "First argument: $1" echo "Second argument: $2" # $# 获取参数个数 echo "Number of arguments: $#" # $? 获取上一个命令的退出状态 echo "Exit status of last command: $?" ``` Shell脚本编程可以极大地提高在Linux系统上的工作效率,通过掌握这些常用语法和命令,可以编写出功能强大的自动化脚本[^3]。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值