Shell function 语法

本文深入探讨了Shell函数的语法与使用技巧,包括函数定义、执行、参数传递及局部变量处理。通过实例展示了如何创建并执行带参数的函数,如URL检测脚本,解析了函数在Shell编程中的关键作用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

shell函数语法

#!/bin/bash

function say()
{	
	echo 'say hello'
}

say
  • 方法名后面可以有多个空格
  • 括号内可以有多个空格
  • 括号可以不要,但是为了美观,建议加上括号
  • 如果方法体写成一行,需要在语句后面加分号“;”

shell函数的执行,执行不带参数的函数,直接输入函数名即可

函数名
  • 执行不带参数的函数时,直接输入函数名即可(注意不带小括号)
  • 函数的定义必须在要执行的程序前面定义或加载
  • Shell执行系统中各种程序的执行顺序为:系统别名→函数→系统命令→可执行文件
  • 函数执行时,会和调用它的脚本共用变量,也可以为函数设定局部变量及特殊位置参数。
  • 在Shell函数里面,return命令的功能与exit类似,return的作用是退出函数,而exit是退出脚本文件。
  • return语句会返回一个退出值(即返回值)给调用函数的当前程序,而exit会返回一个退出值(即返回值)给执行程序的当前Shell。
  • 如果将函数存放在独立的文件中,被脚本加载使用时,需要使用source或“.”来加载。
  • 在函数内一般使用local定义局部变量,这些变量离开函数后就会消失。

带参数的函数执行方法,格式如下

函数名 参数1 参数2
vi check_url.sh


#!/bin/sh

# 帮助函数。
function usage(){
    echo "usage:$0 url"
    exit 1
}

# 检测 URL 函数
# --spider 当使用此选项调用时,Wget将表现为Web蜘蛛,这意味着它不会下载页面,只需检查它们是否存在。
# -q 关掉Wget的输出,-T指定超时时间,
# --tries 重试次数,无限重试指定数,默认情况是重试20次

function check_url(){
    wget --spider -q -o /dev/null --tries=1 -T 5 $1
    if [ $? -eq 0 ];then
        echo "$1 is yes."
    else
        echo "$1 is no."
    fi
}

# 主函数
function main(){
    # 如果传入的是多个参数,则打印帮助函数,提示用户
    if [ $# -ne 1 ];then
        usage
    fi
    
    # 接收函数的传参,即把下文main结尾的 $* 传到这里
    check_url $1
}

# 这里的 $* 指所有参数
main $* 
# 执行脚本

bash check_url.sh 
usage: check_url.sh url

bash check_url.sh www.baidu.com
www.baidu.com is yes.

bash check_url.sh www.2baidu.com
www.2baidu.com is no.

Shell是一种命令行解释器,它提供了一种与操作系统交互的方式。以下是Shell语言的一些基本语法: 1. 命令的执行 Shell中的命令可以通过在命令行输入它们来执行。例如,输入ls命令将列出当前目录中的文件和子目录。 2. 变量的定义和使用 变量可以用来存储和操作数据。Shell中的变量定义方式为:变量名=值。例如,定义一个名为name的变量,其值为John Doe,可以使用以下命令: ``` name="John Doe" ``` 在使用变量时,需要在变量名前加上$符号。例如,要输出name变量的值,可以使用以下命令: ``` echo $name ``` 3. 条件语句 Shell中的条件语句基本上与其他编程语言中的条件语句相同。例如,以下是一个if语句的语法: ``` if [ condition ] then command1 else command2 fi ``` 如果条件为真,则执行command1,否则执行command2。 4. 循环语句 Shell中的循环语句有for和while语句。例如,以下是一个for循环语句的语法: ``` for var in item1 item2 ... itemN do command1 command2 ... commandN done ``` 其中,var是循环变量,item1到itemN是要循环的项,command1到commandN是要执行的命令。 5. 函数的定义和调用 Shell中的函数定义方式为: ``` function_name () { command1 command2 ... commandN } ``` 要调用函数,只需使用函数名即可。例如: ``` function_name ``` 这些都是Shell语言的基本语法。当然,还有很多其他的语法和命令可以使用。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值