文章摘要
GPT 4
此内容根据文章生成,仅用于文章内容的解释与总结。

别名

格式

在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. Shell的函数格式与JavaScript、Python相似,也是解释性语言的共性啦;其格式如下:

    1
    2
    3
    4
    5
    6
    function_name () {
    # 函数的命令和操作
    # 可以使用参数和局部变量
    # 可以使用 return 语句来返回值
    # 必须在调用函数地方之前先声明函数
    }
  2. 要调用一个Shell函数,只需使用函数名称后面加上括号,可以传递参数作为函数的输入

    基本调用:函数名

    带参调用:函数名 参数

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

    符号 解释
    $0 脚本的名称
    $1 $2 $3 函数或脚本的参数,$1 表示第一个参数,以此类推
    $# 参数的数量
    $@ 以列表形式展示所有参数
    $* 将所有参数作为单个字符串展示
    $? 上一个命令的退出状态;
    用于检查命令是否成功执行(0 表示成功,非零表示失败)
    $$ 当前脚本或进程的PID(进程号)
    $! 最后一个在后台启动的命令或进程的PID(进程号)

举例

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

举例

写一个输出返回值的函数

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