shell脚本内调用另外一个shell脚本的几种方法讲解

2023-12-05 0 274

有时会在一个shell脚本(如test_call_other_shell.sh)中调用另外一个shell脚本(如parameter_usage.sh),这里总结几种可行的方法,这些方法在linux上和windows上(通过Git Bash)均适用:

1.通过source: 运行在相同的进程,在test_call_other_shell.sh中调用parameter_usage.sh后,parameter_usage.sh中的变量和函数在test_call_other_shell.sh中可直接使用

2.通过/bin/bash: 运行在不同的进程

3.通过sh: 运行在不同的进程

4.通过.: 运行在相同的进程,在test_call_other_shell.sh中调用parameter_usage.sh后,parameter_usage.sh中的变量和函数在test_call_other_shell.sh中可直接使用

parameter_usage.sh内容如下:

#! /bin/bash
# 参数的使用
# 我们可以在执行Shell脚本时,向脚本传递参数,脚本内获取参数的格式为:$n. n代表一个数字,1为执行脚本的第一个参数,2为执行脚本的第二个参数,以此类推
if [ $# != 3 ]; then
echo \”usage: $0 param1 param2 param3\”
echo \”e.g: $0 1 2 3\”
exit 1
fi
echo \”执行文件名: $0\”
echo \”param1: $1\”; echo \”param2: $2\”; echo \”param3: $3\”
parameters=$*
# 特殊字符用来处理参数
# $#: 传递到脚本的参数个数
echo \”参数个数为: $#\”
# $*: 以一个单字符串显示所有向脚本传递的参数
echo \”传递的参数作为一个字符串显示: $*\”
# $@: 与$*相同,但是使用时加引号,并在引号中返回每个参数
echo \”传递的参数作为字符串显示: $@\”
for i in \”$*\”; do # 循环一次
echo \”loop\”; echo $i
done
echo \”\”
for i in \”$@\”; do # 循环三次
echo \”loop\”; echo $i
done
get_csdn_addr()
{
echo \”csdn addr: https://blog.csdn.net/fengbingchun/\”
}

test_call_other_shell.sh内容如下:

#! /bin/bash
params=(source /bin/bash sh .)
usage()
{
echo \”Error: $0 needs to have an input parameter\”
echo \”supported input parameters:\”
for param in ${params[@]}; do
echo \” $0 ${param}\”
done
exit -1
}
if [ $# != 1 ]; then
usage
fi
flag=0
for param in ${params[@]}; do
if [ $1 == ${param} ]; then
flag=1
break
fi
done
if [ ${flag} == 0 ]; then
echo \”Error: parameter \\\”$1\\\” is not supported\”
usage
exit -1
fi
echo \”==== test $1 ====\”
$1 parameter_usage.sh 1 2 3
echo \”parameters: ${parameters}\”
get_csdn_addr
$1 parameter_usage 123
#ret=$?
#if [[ ${ret} != 0 ]]; then
# echo \”##### Error: some of the above commands have gone wrong, please check: ${ret}\”
# exit ${ret}
#fi
if [ $? -ne 0 ]; then
echo \”##### Error: some of the above commands have gone wrong, please check\”
exit -1
fi
echo \”test finish\”

在linux上的执行结果如下:

shell脚本内调用另外一个shell脚本的几种方法讲解

在windows上执行结果如下:

shell脚本内调用另外一个shell脚本的几种方法讲解

在linux下也可以将另外一个shell脚本所在的路径添加到$PATH环境变量,然后你就可以把它作为普通命令调用。

GitHub:https://github.com/fengbingchun/Linux_Code_Test

总结

到此这篇关于shell脚本内调用另外一个shell脚本的几种方法的文章就介绍到这了,更多相关shell脚本调用另外shell脚本内容请搜索悠久资源网以前的文章或继续浏览下面的相关文章希望大家以后多多支持悠久资源网!

您可能感兴趣的文章:

  • Shell脚本中引用、调用另一个脚本文件的2种方法
  • 在Shell脚本中调用另一个脚本的三种方式讲解
  • Shell脚本中调用、引用、包含另外一个脚本文件的两种方法
  • Shell脚本调用另一个脚本的三种方法

收藏 (0) 打赏

感谢您的支持,我会继续努力的!

打开微信/支付宝扫一扫,即可进行扫码打赏哦,分享从这里开始,精彩与您同在
点赞 (0)

悠久资源 linux shell shell脚本内调用另外一个shell脚本的几种方法讲解 https://www.u-9.cn/jiaoben/linuxshell/101676.html

常见问题

相关文章

发表评论
暂无评论
官方客服团队

为您解决烦忧 - 24小时在线 专业服务