首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

BASH:如何静默调用外部脚本,将变量传递给'case‘

在BASH中,可以使用以下方法静默调用外部脚本并将变量传递给'case'语句:

  1. 创建一个外部脚本文件,例如script.sh,并在其中定义一个'case'语句来处理传递的变量。脚本内容如下:
代码语言:bash
复制
#!/bin/bash

case "$1" in
    value1)
        # 处理value1的逻辑
        ;;
    value2)
        # 处理value2的逻辑
        ;;
    *)
        # 处理其他情况的逻辑
        ;;
esac
  1. 在主脚本中,使用以下命令来调用外部脚本并传递变量:
代码语言:bash
复制
#!/bin/bash

variable="value1"  # 设置要传递的变量值

# 调用外部脚本,并将变量传递给它
./script.sh "$variable" >/dev/null 2>&1

在上述示例中,我们将变量"value1"传递给外部脚本script.sh,并使用/dev/null将输出重定向到空设备,以实现静默调用。

请注意,脚本文件script.sh需要具有执行权限。可以使用以下命令为脚本文件添加执行权限:

代码语言:bash
复制
chmod +x script.sh

这样,当主脚本运行时,它将静默调用外部脚本并将变量传递给'case'语句进行处理。

推荐的腾讯云相关产品和产品介绍链接地址:

以上是腾讯云提供的一些相关产品,可以根据具体需求选择适合的产品进行开发和部署。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

shell脚本编程之路3

[TOC] 0x09 shell编程函数 描述:Bash(Bourne Again shell)也跟其他编程语言一样也支持函数,一般在编写大型脚本中需要用到,函数可以让我们一个复杂功能划分成若干模块,...# 传递给函数的单个参数 } funWithParam 1 2 3 4 5 6 7 8 9 34 73 #注意这里传递给函数的参数 WeiyiGeek.函数参数传递 递归函数 bash也支持递归函数...来获取执行的结果; shell中函数参与脚本参是一致的,但是得注意 $0 代表任然是父脚本的名称; 删除函数 描述:像删除变量一样,删除函数也可以使用 unset 命令,不过要加上 .f 选项,如下所示...WeiyiGeek.函数嵌套删除 0x09 shell脚本包含 描述:Shell文件包含像其他语言一样,Shell 也可以包含外部脚本外部脚本的内容合并到当前脚本,也能在函数中进行调用外部变量 脚本包含.../bin/bash . ./subscript.sh #注意:被包含脚本不需要有执行权限 echo "我的个人网站地址: ${url}" # 调用subscript里面的变量.

3.3K10
  • Shell编程-函数

    在Shell脚本中,函数(Functions)允许您组织和重复使用代码片段,以及复杂任务分解为更小的模块。函数可以带有参数,可以返回值,提供了一种封装和抽象代码的方式。...} 调用函数: 要调用函数,只需使用其名称即可: print_message 函数参数: 函数可以接受参数,参数通过位置变量 1, 2, 3, ... 表示。...fi } # 调用函数并传递参数 is_even 7 is_even 10 局部变量: 在函数内部定义的变量默认是全局的,可以使用 local 关键字来声明局部变量,其作用域仅限于函数内部。 #!...,都是1,其中函数调用的时候,后面的1,就是运行该程序的时候传递给它的参数,如果不参数,这个程序会运行失败。...比如我们在Shell编程-for循环打印的99乘法表,如果我们要打印一个其他乘法表,则需要修改代码,但是通过局部变量的我们把乘法表封装在函数内部,只要在运行函数的时候传递给他对应的参数,就可以打印任何乘法表

    7510

    shell脚本知识记录

    /bin/bash echo "当前输入的参数变量的长度为" $# echo "当前执行的Shell脚本为" $0 echo "当前输入的第一个参数为" $1 echo "当前输入的第二个参数为" $2...调用的时候直接写函数名 不需要加括号 4. 如果想传递参数的话 直接在调用后来加上参数列表 用空格隔开 (就是Shell的参一样) 5. 使用local关键字来定义函数体里面的局部变量 7..../bin/bash function sayhi() {     echo hi $1 } sayhi tom #前面的sayhi是函数的调用 后面的tom是参 exit 0 可以看到输出 hi tom.../文件/语言的调用 Shell的另一个强大之处就是可以无缝的和外部的命令,文件,语言结合,去调用组织他们 1....外部语言:比如java,python可以直接使用他们的java调用jar,java文件,也可以直接使用关键字来执行python文件 总结 Shell很好很强大,得学习!!!

    54330

    shell(二)

    脚本文件中所有的标点符号均为英文状态下。 2.2函数参 实现函数参和函数体内调用参数,脚本文件示例: #!.../bin/bash func2(){ echo "my name is $1" } # 调用函数并参 func2 ethanyan 执行脚本文件: ethanyan@ethanyan-PC:~...$ bash func2.sh my name is ethanyan 2.3脚本参 实现脚本参,函数调用。...5.生产脚本 5.1大型脚本编写 一般的脚本大家都会写了,那么对于线上服务器的大型脚本如何实现的呢?我们先来看一下流程: 1.编写脚本框架。...函数调用。写好函数后,一定要在主函数中进行调用。 避免符号出现中文。 命令变量的写法一定要规范。 固定的内容一定要变量实现,方便以后更改。 日志的输出。 脚本参和函数的参要区别对待。 ?

    97120

    Linux基础(五)

    答:因为hash值的原因,外部命令第一次执行时搜索的路径会记录在内存的hash表中 hash查看一下,会发现有/root/first.sh 清除一下:hash -d first.sh 问题: 脚本执行...则是子进程放到父进程进行执行,影响当前环境,常用于读取配置文件 5、bash变量分类、 本地变量(普通变量):生效范围为当前shell,对当前shell之外的其他shell进程,包括当前shell....来表示,用于脚本代码中调用通过命令行参数传递给它的参数 特殊变量:$?...declare -r name declare -ir name ( i表示数字 ) 查看:readonly -p 例如:PI = 3.1415926 位置变量:在脚本代码中调用通过命令行传递给脚本的参数.......") $@ :传递给脚本的所有参数,每个参数为独立字符串 ( "string1" "string2" "string3" ... ) $# :传递给脚本的参数的个数 $@ $* :只有在被双引号引起来的时候才会有差异

    1.2K80

    简单&基础shell操作_转发分享

    Shell是一种脚本语言,那么,就必须有解释器来执行这些脚本,常见的脚本解释器有: bash:是Linux标准默认的shell。...关于注释的问题: 在shell中使用#进行注释,注意,sh里面没有多行注释,只能每一行加一个#号; 第一个shell脚本程序: #!/bin/bash # 上面中的 #!...shell变量中有一部分是环境变量,有一部分是局部变量,这些变量保证了shell的正常运行 特殊变量: image $* 和 $@ 的区别为: $* 和 $@ 都表示传递给函数或脚本的所有参数...(不带文件) 和如何得到它的文件名??...像删除变量一样,删除函数也可以使用 unset 命令,不过要加上 .f 选项,如下所示: unset .f function_name shell的文件包含: Shell 也可以包含外部脚本外部脚本的内容合并到当前脚本

    1K10

    Shell脚本学习3

    ,用来接收函数的计算结果,脚本在需要的时候访问这个变量来获得函数返回值。...f 选项: $unset .f function_name 注:如果你希望直接从终端调用函数,可以函数定义在主目录下的 .profile 文件,这样每次登录后,在命令提示符后面输入函数名字就可以立即调用.../bin/bash function sum(){ case $# in 0) echo "no param";; 1) echo $1;; 2) echo `expr $1 + $2`...当n>=10时,需要使用 特殊变量 说明 $# 传递给函数的参数个数。 $* 显示所有传递给函数的参数。 $@ 与$*相同,但是略有区别,请查看Shell特殊变量。 $? 函数的返回值。...屏蔽 stdout 和 stderr: command > /dev/null 2>&1 Shell文件包含 Shell 也可以包含外部脚本外部脚本的内容合并到当前脚本

    23420

    拥有此神技,脚本调试从此与 echo、set、test 说分手!

    所以为了确保 Bash 脚本的安全可靠,在生产环境中部署之前一定需要做好足够的测试以确保其行为符合我们的预期。 如何能够安全可靠的去测试 Bash 脚本呢?有人可能会说我们可以用 Docker 容器。...但对于 Bash 脚本来说,这些外部原因导致的结果就是所调用的命令执行成功或者失败了。...首先,所有存在于PATH环境变量的路径中的命令都不应该在单元测试中被执行。对 Bash 脚本来说,被调用的这些命令可以正常运行,有返回值,有输出。...但脚本调用的这些命令都是被模拟出来的,用于模拟对应的真实命令的行为。这样,我们在 Bash 脚本的单元测试中就避免了很大一部分的外部依赖,而且测试的执行速度也不会受到真实命令的影响了。...然后我们就可以执行真正的命令了,find命令的输出结果传递给xargs命令,并组合到rm -rf命令之后。

    1K20

    Linux Shell编程入门

    一般Shell变量名只能包含数字、字母和下划线,因为某些包含其他字符的变量有特殊含义,这样的变量被称为特殊变量。 特殊变量列表 变量 含义$0当前脚本的文件名$n传递给脚本或函数的参数。...$#传递给脚本或函数的参数个数。$*传递给脚本或函数的所有参数。$@传递给脚本或函数的所有参数。被双引号(" ")包含时,与 $* 稍有不同,下面将会讲到。$?上个命令的退出状态,或函数的返回值。...若此替换出现在Shell脚本中,那么脚本停止运行。${var:+word}如果变量 var 被定义,那么返回 word,但不改变 var 的值。...如果一定要让函数返回字符串,那么可以先定义一个变量,用来接收函数的计算结果,脚本在需要的时候访问这个变量来获得函数返回值。 调用函数只需要给出函数名,不需要加括号。...像其他语言一样,Shell 也可以包含外部脚本外部脚本的内容合并到当前脚本

    3.1K10

    shell极简教程(二)

    取值可以为变量或常数。匹配发现取值符合某一模式后,其间所有命令开始执行直至 ;;。;; 与其他语言中的 break 类似,意思是跳到整个 case 语句的最后。   取值检测匹配的每一个模式。...如果一定要让函数返回字符串,那么可以先定义一个变量,用来接收函数的计算结果,脚本在需要的时候访问这个变量来获得函数返回值。=   先来看一个例子: #!...另外,还有几个特殊变量用来处理参数,前面已经提到: 特殊变量 说明 $# 传递给函数的参数个数。 $* 显示所有传递给函数的参数。 $@ 与$*相同,但是略有区别,请查看Shell特殊变量。...如果希望屏蔽 stdout 和 stderr,可以这样写: $ command > /dev/null 2>&1 十六,文件包含 像其他语言一样,Shell 也可以包含外部脚本外部脚本的内容合并到当前脚本...例如,创建两个脚本,一个是被调用脚本 subscript.sh,内容如下: url="http://see.xidian.edu.cn/cpp/view/2738.html"   一个是主文件 main.sh

    5.3K70

    linux之shell编程(三)

    大家五一劳动节快乐,我们继续来分享linux下的shell编程,今天是最后一篇shell编程系列文章,主要分享循环结构如何写。...1、case语句的格式书写: case 变量值 in 模式1) 命令序列1 ;; 模式2) 命令序列2 ;; ....... *) 默认命令序列.../bin/bash var=9; case $var in 8) echo "8" ;; 9) echo "9" ;; esac 演示结果: root@txp-virtual-machine...:/home/txp# source test.sh 9 三、调用shell程序的参: 不知大家看到这个,有没有想到我们c语言里面int main 函数的标准写法呢: int main(int argc...没错我们的shell接收用户的参和这个思想类似的,在我们shell里面参规则是: $0对应的是当前Shell脚本程序的名称 $#对应的是总共有几个参数 $*对应的是所有位置的参数值 $?

    48230

    Shell 编程(二):Shell 函数的高级用法

    "; } test greeting Bash Copy 输出 test function hello,Zhangsan Bash Copy 例子 写一个监控nginx的脚本;如果Nginx服务宕掉,...Copy 直接使用函数名调用,可以将其想象成 Shell 中的一条命令 函数内部可以直接使用参数1、2…、 函数调用格式 # name 为函数 name xxx xxx > function.../bin/bash function calculate { case "$2" in +) echo "`expr $1 + $3`";...Copy 局部变量和全局变量 全局变量 不做特殊声明, Shell中变量都是全局变量 大型脚本程序中函数中慎用全局变量 局部变量 定义变量时,使用local关键字 函数内和外若存在同名变量,则函数内部变量覆盖外部变量...一般不直接执行,而是由其他脚本调用 例子 定义一个函数库,该函数库实现以下几个函数: 加法函数 add 减法函数 reduce 乘法函数 multiple 除法函数 divide 打印系统运行情况的函数

    29710

    Linux:进程替换

    (2)找到程序后的下一个问题就是我们要如何去执行这个程序,所以就设计到了要不要涵盖选项,以及这个选项应该以vector的形式还是list的形式。 (3)这个程序我一定要用该进程的环境变量吗??...,然后再调用main函数的时候argc参数传递给程序,其实就相当于是你在执行该程序之前,优先给你加载出来一个栈帧结构。...脚本语言不是脚本在跑,而是由解释器来解释执行 我们想要执行脚本文件的话,路径的就不是脚本文件,而是脚本文件的解释器, bash+test.sh则是作为命令行参数。 ...(1)任何语言都有像exec这类的接口 (2)语言可以互相调用的原因是 无论是什么语言写的程序 在操作系统看来都是进程 1.5.3 命令行参数和环境变量递给另一个程序  环境变量是在子进程创建的时候就默认继承了...2、彻底替换环境变量——>execle、execve 就使用execle系列的接口,然后myenv(自定义的)进去  就相当于是覆盖!!

    12210

    Shell入门知识

    /bin/bash 指定编译器,必须在脚本的第一行,echo输出信息,这里为输出Hello World 如何运行这段程序呢, 第一步首先进入到该脚本所在的目录,比如cd /root/shelltest...单引号双引号的区别 单引号:原样输出 双引号:如果里面有变量,会输出变量 没有引号:输出变量 ? 传递的参数 可以在调用脚本的时候给脚本传递参数,脚本内使用$1 $2 .........,这是参数传递给其他程序的最佳方式。...使用source 命令启动脚本,则在脚本结束后其属性不会失效,同时其他的脚本也能访问到。 ? 取消变量 使用unset可以取消变量,这个变量包括环境变量和局部变量 ? 数组 数组中可以存放多个值。...case 值 in 模式1) command1 command2 ...

    85400

    Shell 编程(二):Shell 函数的高级用法

    /bin/bash # 获取当前脚本运行的子id,防止 ps 命令误认 this_pid=$$ while true do ps -ef | grep nginx | grep -v grep | grep...,可以将其想象成 Shell 中的一条命令 函数内部可以直接使用参数1、2…、 函数调用格式 # name 为函数 name xxx xxx > function greeting > { >.../bin/bash function calculate { case "$2" in +) echo "`expr $1 + $3`";...全局变量 不做特殊声明, Shell中变量都是全局变量 大型脚本程序中函数中慎用全局变量 局部变量 定义变量时,使用local关键字 函数内和外若存在同名变量,则函数内部变量覆盖外部变量 例子...输出 > sh example5.sh Hello world 86 Hello world 87 87 函数库 为什么要定义函数库, 经常使用的重复代码封装成函数文件 一般不直接执行,而是由其他脚本调用

    56720

    shell脚本的函数介绍使用和常用案例

    #1、直接执行函数名即可(不带括号) #注意 执行函数时,函数后的小括号不要带了 函数定义及函数整体必须在要执行的函数名的前面定义 #2、带参数的函数执行方法 函数名 参数1 参数2 #提示:函数的参和脚本参类似...guoke I am guoke I am guoke #例4:函数写到/etc/init.d/functions里面,然后通过其他脚本进行调用 #/etc/init.d/functions boy...hs01.sh #通过脚本调用boy函数 #!...usage函数,并退出脚本 Usage: hs02.sh key beginservernum endservernum example: hs02.sh ff 1 2 #例7:函数的参转换成脚本文件命令行参...[ OK ] #总结:脚本中功能进行模块化之后,就会使脚本比较易读和清晰,提升管理效率。

    71620
    领券