51工具盒子

依楼听风雨
笑看云卷云舒,淡观潮起潮落

Shell小笔记(四)

别名 {#别名}

格式 {#格式}

在Linux中,别名的命令为 alias ,其使用方法为: alias 别名="表达式"

  • 别名通常只包含一个或多个简单的命令
  • 默认定义的是临时别名,只需要在终端输入 unalias 别名 或关闭当前终端即可撤销
  • 如需设置永久别名,则需要修改并生效环境变量文件,其位于 /etc/profile

举例 {#举例}

test 定义为 ls -l 的别名

|-----------|------------------------------| | 1 | alias test =" ls -l" |

image-20231017164826515

remove 定义为 rm -i 的别名

|-----------|-------------------------------| | 1 | alias remove= "rm -i" |

image-20231017165107047

函数 {#函数}

格式 {#格式-1}

  1. Shell的函数格式与JavaScript、Python相似,也是解释性语言的共性啦;其格式如下:

    |---------------------|-----------------------------------------------------------------------------------------------| | 1 2 3 4 5 6 | function_name () { # 函数的命令和操作 # 可以使用参数和局部变量 # 可以使用 return 语句来返回值 # 必须在调用函数地方之前先声明函数 } |

  2. 要调用一个Shell函数,只需使用函数名称后面加上括号,可以传递参数作为函数的输入

    基本调用: 函数名

    带参调用: 函数名 参数

  3. 除此之外,还有些特殊字符,如下所示:

    | 符号 | 解释 | |:------------------------:|:---------------------------------------:| | $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 "返回值: $? " |

image-20231018102307383

如果返回值大于255时,需要将返回值放入一个变量中(作为中转),避免溢出

|-----------------------|----------------------------------------------------------------------------------------------------------| | 1 2 3 4 5 6 7 | #!/bin/bash msg2 () { read -p "输入一个数字:" num echo $[num*5] } result=`msg2` echo "返回值: ${result} " |

image-20231018103207507

内部命令 {#内部命令}

(1)内部命令是Shell程序的一部分,执行速度快且不需要创建子进程,但相应的功能简单。

(2)外部命令是Linux系统中的实用程序,需要额外安装,功能丰富、随取随用。

  • 可以通过 type 命令名 查看该命令是否为内部还是外部 image-20231018093513769
  • 还可以通过 echo $PATH 查看外部命令的存储路径 image-20231018093546990
赞(4)
未经允许不得转载:工具盒子 » Shell小笔记(四)