shell 编程入门

这篇博客详细介绍了Shell编程的基础,包括变量定义、运算符、条件判断、流程控制、读取控制台输入、函数以及常用的shell工具如cut、sed、awk和sort的使用方法,是初学者入门Shell编程的宝贵资料。
摘要由CSDN通过智能技术生成

1. 定义变量

1.1 常用的系统变量

  • $HOME 用户的主目录
  • $PWD 当前目录
  • $SHELL 执行的shell解释器的目录
  • $USER 用户名

1.2 自定义变量

1.2.1 定义变量

变量名=变量值

注意:

  • shell脚本语言 变量不需要指定类型。
  • 等号两侧不可以有空格。
  • 变量名的标识符规则和c语言一样。
  • 默认的变量类型为字符串类型,不可以进行四则运算。
  • 如果变量中有空格存在,则需要使用单引号或者双引号将变量值引起来。

1.2.2 撤销变量

unset 变量名

1.2.3 定义静态变量

readonly 变量名

注意:

  • 静态变量不可以使用unset撤销。
  • 静态变量不可以重新赋值

1.2.4 将变量提升为全局变量

export 变量名

注意:

  • 将一个变量提升为全局变量后,其它的shell程序便可以使用该全局变量。

1.3 特殊变量

1.3.1 $n

其中n 代表的是数字。不同的数据具有特定的含义。

  • 数字0 :表示当前执行的脚本文件的文件名
  • 数字1 - xxx: 分别表示执行当前脚本时所输入的第1-xxx 个命令行参数

注意: 如果输入的命令行参数的个数大于10,那么从第10个起,在shell程序中使用该参数应该使用大括号扩起来 : 例如,${10}。

1.3.2 $#

$# 代表执行shell脚本时,输入的所有的命令行参数的个数。

1.3.3 $*

$* 代表输入的所有的命令行参数。 它将所有的命令行参数看做是一个整体。

1.3.4 $@

$* 也代表输入的所有的命令行参数。 它不将所有的命令行参数看做是一个整体,而是分别看待。

$* 和 $@ 的区别

  • $*和$@都表示传递给函数或脚本的所有参数,不被双引号“”包含时,都以$1 $2 … $n的形式输出所有参数。
  • 当它们被双引号“”包含时,“$ *”会将所有的参数作为一个整体,以“$1 $2 …$ n”的形式输出所有参数;“$@”会将各个参数分开,以“$1” “$2”…”$n”的形式输出所有参数。
1.3.5 $?

$? 代表最后一次执行的命令的返回状态。如果这个变量的值为 0,证明上一
个命令正确执行;如果这个变量的值为非 0,则代表上一个命令没有正确执行。不同的数字代表不同的出错原因。

2. 运算符

  • 方式一:“$((运算式))”
  • 方式二:“$[运算式]”
  • 方式三: expr + , - , *, /, % 加,减,乘,除,取余

注意:
expr 和运算符之间要有空格。

举栗子:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值