别名 {#别名}
格式 {#格式}
在Linux中,别名的命令为 alias ,其使用方法为: alias 别名="表达式"
- 别名通常只包含一个或多个简单的命令
- 默认定义的是临时别名,只需要在终端输入
unalias 别名或关闭当前终端即可撤销 - 如需设置永久别名,则需要修改并生效环境变量文件,其位于
/etc/profile
举例 {#举例}
将 test 定义为 ls -l 的别名
|-----------|------------------------------|
| 1 | alias test =" ls -l" |

将 remove 定义为 rm -i 的别名
|-----------|-------------------------------|
| 1 | alias remove= "rm -i" |

函数 {#函数}
格式 {#格式-1}
-
Shell的函数格式与JavaScript、Python相似,也是解释性语言的共性啦;其格式如下:
|---------------------|-----------------------------------------------------------------------------------------------| |
1 2 3 4 5 6|function_name () { # 函数的命令和操作 # 可以使用参数和局部变量 # 可以使用 return 语句来返回值 # 必须在调用函数地方之前先声明函数 }| -
要调用一个Shell函数,只需使用函数名称后面加上括号,可以传递参数作为函数的输入
基本调用:
函数名带参调用:
函数名 参数 -
除此之外,还有些特殊字符,如下所示:
| 符号 | 解释 | |:------------------------:|:---------------------------------------:| |
$0| 脚本的名称 | |$1$2$3... | 函数或脚本的参数,$1表示第一个参数,以此类推 | |$#| 参数的数量 | |$@| 以列表形式展示所有参数 | |$*| 将所有参数作为单个字符串展示 | |$?| 上一个命令的退出状态; 用于检查命令是否成功执行(0 表示成功,非零表示失败) | |$$| 当前脚本或进程的PID(进程号) | |$!| 最后一个在后台启动的命令或进程的PID(进程号) |
举例 {#举例-1}
|------------------------------------------------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | #!/bin/bash # 定义一个函数,计算两个数的和并返回结果 add_numbers () { local num1= $1 local num2= $2 local sum =$((num1 + num2)) echo $sum # 返回结果 } # 调用函数并获取返回值 result=$(add_numbers 5 3) echo "总和: $result " echo "脚本名: $0 " echo "参数数量: $# " echo "脚本参数: $@ " echo "最后一条命令的返回值: $?" echo "进程号: $$" |
返回值 {#返回值}
说明 {#说明}
在Linux Shell中,返回值分为: 状态返回值 和 结果返回值 ;本文讲的是前者,用于判断命令执行的状态。
-
函数的返回值,可通过
$?系统变量获得 -
需要自定义返回值时,可使用:
return N(其中 N 的取值范围为:0-255)如果不加,将以最后一条命令运行结果,作为返回值
-
通常情况下,返回值为
0为无错误返回,处于1-255内为有错误返回
?提示:返回值是一组状态码;如果需要自定义输出(如特定文本),请使用 echo 。
举例 {#举例-2}
写一个输出返回值的函数
|-----------------------|---------------------------------------------------------------------------|
| 1 2 3 4 5 6 7 | #!/bin/bash msg () { echo "Done!" return 32 } msg echo "返回值: $? " |

如果返回值大于255时,需要将返回值放入一个变量中(作为中转),避免溢出
|-----------------------|----------------------------------------------------------------------------------------------------------|
| 1 2 3 4 5 6 7 | #!/bin/bash msg2 () { read -p "输入一个数字:" num echo $[num*5] } result=`msg2` echo "返回值: ${result} " |

内部命令 {#内部命令}
(1)内部命令是Shell程序的一部分,执行速度快且不需要创建子进程,但相应的功能简单。
(2)外部命令是Linux系统中的实用程序,需要额外安装,功能丰富、随取随用。
- 可以通过
type 命令名查看该命令是否为内部还是外部
- 还可以通过
echo $PATH查看外部命令的存储路径
51工具盒子