首页
学习
活动
专区
工具
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脚本知识记录

/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很好很强大,得学习!!!

53130

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.编写脚本框架。...函数调用。写好函数后,一定要在主函数中进行调用。 避免符号出现中文。 命令变量的写法一定要规范。 固定的内容一定要变量实现,方便以后更改。 日志的输出。 脚本参和函数的参要区别对待。 ?

96020

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

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

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

1K20

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 也可以包含外部脚本外部脚本的内容合并到当前脚本

22620

Linux Shell编程入门

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

3K10

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脚本程序的名称 $#对应的是总共有几个参数 $*对应的是所有位置的参数值 $?

47130

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 打印系统运行情况的函数

27310

Shell入门知识

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

84100

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 ] #总结:脚本中功能进行模块化之后,就会使脚本比较易读和清晰,提升管理效率。

69320

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 函数库 为什么要定义函数库, 经常使用的重复代码封装成函数文件 一般不直接执行,而是由其他脚本调用

56120

Linux Bash脚本15分钟进阶教程

代码移入到函数里,仅把全局变量、常量和对“main”调用的语句放在最外层。...# initialize a local variable with the global default local some_var=${DEFAULT_VAL} ... } 这样,你可以一个以前不是只读变量变量声明成只读变量...case $t in abc*) ;; esac 字符串操作 Bash里有各种各样操作字符串的方式,很多都是不可取的。...上一个命令的退出状态(管道命令使用${PIPESTATUS}) $# 传递给脚本/函数的参数个数 $@ 传递给脚本/函数的所有参数(识别每个参数) $* 传递给脚本/函数的所有参数(把所有参数当成一个字符串...什么时候不应该使用bash脚本 你的脚本太长,多达几百行 你需要比数组更复杂的数据结构 出现了复杂的转义问题 有太多的字符串操作 不太需要调用其它程序和跟其它程序管道交互 担心性能 这个时候,你应该考虑一种脚本语言

1.1K00

Shell脚本编程_shell简单脚本

① 交互式环境调用函数 ② 在脚本中定义及使用函数 ③ 使用函数文件 (4) 函数返回值 (5) 环境函数 (6) 函数参数 (7) 函数变量 (8) 函数递归 2.12 一些脚本相关工具 (1) 信号捕捉...使用 read 从标准输入读取数值: read -p "提示信息" [变量名] read -p "提示信息" [变量名] < [文件] 常用选项: -p #指定要显示的提示信息 -s #静默输入...bash shell 中内置的变量,在脚本代码中调用通过命令行传递给脚本的参数。...对应第1个、第2个等参数,shift [n] 换位置 $0 命令本身,包括路径 $* 传递给脚本的所有参数,全部参数合为一个字符串 $@ 传递给脚本的所有参数,每个参数为独立字符串 $# 传递给脚本的参数的个数...,然后函数文件载入 shell,再进行调用函数 文件名可任意选取,但最好与相关任务有某种联系,例如:functions 一旦函数文件载入 shell,就可以在命令行或脚本调用函数。

7.9K10

【愚公系列】软考中级-软件设计师 012-程序设计语言基础知识(概述)

数据传输可以通过值或引用的方式进行,具体取决于编程语言的规定。赋值:赋值是数据存储到变量中的过程。在程序设计语言中,赋值操作使用赋值符号(通常是等号)右侧的数据值赋给左侧的变量。...赋值操作可以常量值、变量值或表达式的结果赋给变量。输入输出:输入是数据从外部世界(如用户、文件等)引入程序内部的过程,输出是程序内部的数据展示给外部世界的过程。...通过数据传输、赋值和输入输出,程序能够与用户、外部设备和其他程序进行交互,并对数据进行处理和展示。2.5 调用调用程序设计语言中的调用调用是用于确定函数参数传递的方式。...调用(Call by Value)是指在函数调用时,实际参数的值复制一份传递给形式参数,函数内部对形式参数的修改不会影响到实际参数的值。换句话说,函数内部的操作只是对形式参数的一份拷贝进行的。...调用(Call by Reference)是指在函数调用时,实际参数的地址传递给形式参数,函数内部对形式参数的修改会影响到实际参数的值。换句话说,函数内部的操作直接对实际参数进行修改。

13711
领券