bash脚本的函数参数传递注意事项

第一,参数传递的是字符串(简单的字符串替换)没有指针,引用等概念

第二,参数是中间有空格的字符串传递时,小心被分割成两个参数(参数前后添加 " 或‘ 可避免分割)

#!/bin/bash

fun1()
{
    echo "fun1()"
    echo "$1"
    echo "$2"
    echo "========="
}

p1="hello world"

fun1 ${p1}
fun1 "${p1}"

declare -a arr

fun2(){
    echo "fun2()"
    # $1[0]="first element of array" # arr[0]=first element of array: 未找到命令
    echo $1
    arr[0]="first element of array" # 访问全局变量
    echo "=========="
}

fun2 arr
echo "${arr[0]}"

运行结果

fun1()
hello
world
=========
fun1()
hello world

=========
fun2()
arr
==========
first element of array
时间: 2024-10-10 22:05:01

bash脚本的函数参数传递注意事项的相关文章

Bash脚本之函数定义和调用

把那些在脚本中重复出现并且没有任何改变的代码,封装起来,在适当的场景中调用执行.程序员将这种被封装起来的代码称为功能体,或者叫模块,也称为函数.这样看来是不是和循环类似,循环也是为了方便去多次执行一堆代码,而函数是将一堆代码写在一起,起一个名字,然后在需要这堆代码的时候只需要写上函数的名字即可.在shell脚本编程中,函数是由若干条shell命令组成的语句块,函数里面的内容和shell程序形式上是一致的.不同之处就是,shell代码可以直接被执行,而函数中的内容,不能独立执行,只有被调用的时候才

bash脚本之函数function

脚本编程之函数: function:功能,结构化编程,不能独立运行,需要调用时执行,可以多次被调用 定义一个函数: function FUNCNAME { COMMAND } 或 FUNCNAME(){ COMMAND } 自定义执行状态返回值 return # 0-255 接受参数的函数: FUNCNAME m n m在function函数里面用$1引用,相应地,n对应于$2 例子:写一个脚本,使用函数完成 1.函数能够接受一个参数,参数为用户名:判断一个用户是否存在 如果存在,就返回次用户的

bash脚本编程之十 函数

bash脚本编程之十 函数详解 ·函数(function) function翻译成函数对于中文来讲不是特别的精确,因为function的真正意思是功能,理论上function这个英文单词既可以翻译成函数,又可以翻译成功能,但是我们数学意义上的函数和程序中的函数并不是同一个概念,所以我们如果把function称为功能可能会更合适一点,但是我们大家约定俗成通常都称其为函数,函数是实现结构化编程的一个重要思想,其主要目的是为了实现代码重用 ·库(library) 库是由一些共享对象(so->share

Bash 脚本编写与sed,awk使用

操作系统概述: hardware:最底层是硬件(各个厂家) kenerl: 各个厂家的硬件通过简洁的统一的接口抽象出来,将整个操作系统虚拟出来,进行系统调用. 库:将kernel最底层的数量较少的系统调用,封装成里用户较近的功能模块. 应用程序:其中就有shell,服务于后台叫做守护进程和服务进程,开机时自动启动,不需要交互: shell应用程序 GUI:图形化 CLI:命令提示符 词法分析: 命令,选项,参数 内建命令:bash提供 外部命令的查找路径:PATH 命令流程: bash的程序文件

linux学习之shell脚本 ------- shell函数

[本文是自己学习所做笔记,欢迎转载,但请注明出处:http://blog.csdn.net/jesson20121020] 今天来看一下Shell的函数. Shell函数 函数定义 shell允许将一组命令集或语句形成一个可用块,这些块称为Shell函数. 函数定义格式: 函数名(){ 命令1 -- } 或 function 函数名(){ -- } 函数可以放在同一个文件中作为一段代码,也可以放在只包含函数的单独文件中. 如下面的脚本就是一个只包含函数的单独文件. #!/bin/bash #fu

bash脚本编程的语法知识点总结第一部分

bash脚本编程的所有语法知识点总结第一部分 名词概念 bash脚本编程,从字面意思理解也就是shell脚本编程.bash应该是目前Linux上最流行的shell脚本解释程序.shell是一个命令语言解释器,而shell脚本则是Linux命令的集合,按照预设的顺序依次解释执行,来完成特定的.较复杂的系统管理任务,类似于Windows中的批处理文件. 1.shell脚本格式 第一行,顶格. eg: #!/bin/bash #!/usr/bin/python 其它的以#开头的行均为注释,会被解释器忽

bash脚本总结

bash及shell脚本编程基础 bash特性之多命令执行:使用分号分隔,命令之间无关系: ]# cmd 方式一:]# cmd1 `cmd2`:命令引用实现多命令: 方式二:]# cmd1|cmd2|cmd3|...:管道实现多命令: 方式三:]# cmd1;cmd2;cmd3;...:分号实现多命令: 逻辑组合:操作的是命令的运行状态结果即退出码: ]# cmd1 && cmd2 && ... ]# cmd1 || cmd2 ||... ]# !cmd1 退出码: 0:表

bash脚本编程知识储备

bash脚本编程: ????脚本程序:解释器解释执行: 首先得理清一些琐碎的知识点,我尽量把我所学的帮朋友一起梳理一下 编程环境:(我会在接下来的篇章,图文例子三结合的方式带大家一起学习) ???????????? 流程控制语句: ???????????????? 顺序执行: ???????????? 循环执行: ???????????????? 选择执行: 2. ????????bash变量是弱类型:默认字符型: ? ????????变量引用:${VAR_NAME} ????????引号: ?

高级Bash脚本编程指南

http://tldp.org/LDP/abs/html/ 高级Bash脚本编程指南对脚本语言艺术的深入探索 本教程不承担以前的脚本或编程知识,但进展迅速走向一个中级/高级水平的指令...一直偷偷在细小的UNIX®智慧和学识.它作为一本教科书,一本手册,自学,并作为一个参考和知识的来源,壳牌的脚本技术.练习和大量的评论实例请读者参与,在这样的前提下,真正学习脚本的唯一途径是编写脚本.这本书是适合课堂使用的一般介绍编程的概念.本文件被授予公共领域.没有版权! 奉献对于安妮塔,所有魔术的来源内容表第