关于Linux终端中函数的相关知识

使用bash,和其他大多数的编程语言一样,bash也支持ifcasewhile 和 for 这些控制流关键字。同样地, bash 也支持函数,它可以接受参数并基于参数进行操作。

bash中的特殊变量

与其他脚本语言不同的是,bash使用了很多特殊的变量来表示参数、错误代码和相关变量。

  • $0 - 脚本名
  • $1 到 $9 - 脚本的参数。 $1 是第一个参数,依此类推。
  • $@ - 所有参数
  • $# - 参数个数
  • $? - 前一个命令的返回值
  • $$ - 当前脚本的进程识别码
  • !! - 完整的上一条命令,包括参数。常见应用:当你因为权限不足执行命令失败时,可以使用 sudo !!再尝试一次。
  • $_ - 上一条命令的最后一个参数。如果你正在使用的是交互式 shell,你可以通过按下 Esc 之后键入 . 来获取这个值。

函数定义与调用

使用function关键字或者直接将函数名与花括号括起来定义一个函数,调用函数时,只需要使用函数名即可。例如:

定义my_function函数,在屏幕上输出"This is my function"。

function my_function() {
    echo "This is my function"
}
my_function
This is my function

定义mcd函数,创建一个文件夹并使用cd进入该文件夹。

mcd () {
    mkdir -p "$1"
    cd "$1"
}

传递参数与返回值

可以在函数内部使用参数,并使用return语句返回一个值,例如:

传入两个值,计算二者之和,并返回他们的和。

function add(){
    local result=$(( $1 + $2 ))
    return $result
}
add 1 5
echo $?
6

本例中,local关键字用于声明一个局部变量result,即函数内部的变量,它的作用范围仅限于add函数内部。'$1'和'$2'是函数被调用时传递的参数。'$(( ... ))'是bash中用于进行算术运算的语法,它可以执行数学表达式并返回结果。'$?'返回上一个命令的返回值。

在bash函数中,使用'$#'来获取参数的数量,'$@'表示传递给函数的所有参数列表。例如:

print_args函数接受任意数量的参数,并输出参数的数量与所有参数。

function print_args() {
    echo "Number of arguments: $#"
    echo "All arguments passed to the function: $@"
}

print_args foo bar baz

Number of arguments: 3
All arguments passed to the function: foo bar baz
  • 3
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值