最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

shell腳本內(nèi)調(diào)用另外一個shell腳本的幾種方法講解

 更新時間:2023年06月26日 15:52:10   作者:fengbingchun  
在Linux開發(fā)中經(jīng)常會編寫shell腳本來執(zhí)行一些任務(wù),下面這篇文章主要給大家介紹了關(guān)于shell腳本內(nèi)調(diào)用另外一個shell腳本的幾種方法,需要的朋友可以參考下

有時會在一個shell腳本(如test_call_other_shell.sh)中調(diào)用另外一個shell腳本(如parameter_usage.sh),這里總結(jié)幾種可行的方法,這些方法在linux上和windows上(通過Git Bash)均適用

1.通過source: 運行在相同的進程,在test_call_other_shell.sh中調(diào)用parameter_usage.sh后,parameter_usage.sh中的變量和函數(shù)在test_call_other_shell.sh中可直接使用

2.通過/bin/bash: 運行在不同的進程

3.通過sh: 運行在不同的進程

4.通過.: 運行在相同的進程,在test_call_other_shell.sh中調(diào)用parameter_usage.sh后,parameter_usage.sh中的變量和函數(shù)在test_call_other_shell.sh中可直接使用

parameter_usage.sh內(nèi)容如下:

#! /bin/bash
# 參數(shù)的使用
# 我們可以在執(zhí)行Shell腳本時,向腳本傳遞參數(shù),腳本內(nèi)獲取參數(shù)的格式為:$n. n代表一個數(shù)字,1為執(zhí)行腳本的第一個參數(shù),2為執(zhí)行腳本的第二個參數(shù),以此類推
if [ $# != 3 ]; then
    echo "usage: $0 param1 param2 param3"
    echo "e.g: $0 1 2 3"
    exit 1
fi
echo "執(zhí)行文件名: $0"
echo "param1: $1"; echo "param2: $2"; echo "param3: $3"
parameters=$*
# 特殊字符用來處理參數(shù)
# $#: 傳遞到腳本的參數(shù)個數(shù)
echo "參數(shù)個數(shù)為: $#"
# $*: 以一個單字符串顯示所有向腳本傳遞的參數(shù)
echo "傳遞的參數(shù)作為一個字符串顯示: $*"
# $@: 與$*相同,但是使用時加引號,并在引號中返回每個參數(shù)
echo "傳遞的參數(shù)作為字符串顯示: $@"
for i in "$*"; do # 循環(huán)一次
    echo "loop"; echo $i
done
echo ""
for i in "$@"; do # 循環(huán)三次
    echo "loop"; echo $i
done
get_csdn_addr()
{
    echo "csdn addr: https://blog.csdn.net/fengbingchun/"
}

test_call_other_shell.sh內(nèi)容如下

#! /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上的執(zhí)行結(jié)果如下:

在windows上執(zhí)行結(jié)果如下:

在linux下也可以將另外一個shell腳本所在的路徑添加到$PATH環(huán)境變量,然后你就可以把它作為普通命令調(diào)用。

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

總結(jié)

到此這篇關(guān)于shell腳本內(nèi)調(diào)用另外一個shell腳本的幾種方法的文章就介紹到這了,更多相關(guān)shell腳本調(diào)用另外shell腳本內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • jenkins 實現(xiàn)shell腳本化定時執(zhí)行任務(wù)的方法

    jenkins 實現(xiàn)shell腳本化定時執(zhí)行任務(wù)的方法

    這篇文章主要介紹了jenkins 實現(xiàn)shell腳本化定時執(zhí)行任務(wù),解決訪問是jenkins構(gòu)建好之后將jar遠程推送到生產(chǎn)服務(wù)器,提前退出后臺執(zhí)行服務(wù)器遠程腳本,腳本通過ngnx提前切走nginx代理auction sleep 1800s,半小時后執(zhí)行更新重啟,具體操作過程跟隨小編一起看看吧
    2022-01-01
  • 監(jiān)控服務(wù)器swap并重啟php的Shell腳本

    監(jiān)控服務(wù)器swap并重啟php的Shell腳本

    有一臺服務(wù)器老是交換扇區(qū)占滿然后失去響應(yīng),很煩,因為加載了以前別人寫的一個php擴展,效率低,資源占用大,悲劇的是現(xiàn)在還沒有可以替換的東西
    2014-03-03
  • Linux的打包壓縮與解壓縮---tar、xz、zip、unzip命令詳解

    Linux的打包壓縮與解壓縮---tar、xz、zip、unzip命令詳解

    Linux 下一堆各式各樣的壓縮文件名:.gz、.tar.gz、tgz、bz2、.Z、.tar 等眾多的壓縮文件名,本文重點介紹Linux的打包壓縮與解壓縮---tar、xz、zip、unzip命令,感興趣的朋友一起看看吧
    2024-02-02
  • Linux中搭建FTP服務(wù)器的方法

    Linux中搭建FTP服務(wù)器的方法

    這篇文章主要介紹了Linux中搭建FTP服務(wù)器的方法 的相關(guān)資料,需要的朋友可以參考下
    2015-09-09
  • Shell兩種for循環(huán)對應(yīng)實現(xiàn)方法解析

    Shell兩種for循環(huán)對應(yīng)實現(xiàn)方法解析

    這篇文章主要介紹了Shell兩種for循環(huán)對應(yīng)實現(xiàn)方法解析,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-08-08
  • Linux Shell的一些使用小技巧收集

    Linux Shell的一些使用小技巧收集

    這篇文章主要介紹了Linux Shell的一些使用小技巧收集,本文收集了幾十個小技巧,非常實用,需要的朋友可以參考下
    2014-12-12
  • 使用shell腳本分析網(wǎng)站日志統(tǒng)計PV、404、500等數(shù)據(jù)

    使用shell腳本分析網(wǎng)站日志統(tǒng)計PV、404、500等數(shù)據(jù)

    這篇文章主要介紹了使用shell腳本分析網(wǎng)站日志統(tǒng)計PV(瀏覽量)、404、500等數(shù)據(jù),用一個腳本來實現(xiàn),需要的朋友可以參考下
    2014-05-05
  • Linux磁盤管理之LVM詳解及l(fā)vm磁盤操作命令

    Linux磁盤管理之LVM詳解及l(fā)vm磁盤操作命令

    LVM,Logical Volume Manger,是linux內(nèi)核提供的一種邏輯卷管理功能,由內(nèi)核驅(qū)動和應(yīng)用層工具組成,它是在硬盤的分區(qū)基礎(chǔ)上,創(chuàng)建了一個邏輯層,可以非常靈活且非常方便的管理存儲設(shè)備,這篇文章主要介紹了Linux磁盤管理之LVM詳解及l(fā)vm磁盤操作命令,需要的朋友可以參考下
    2023-03-03
  • Linux中修改文件名的多種方法總結(jié)

    Linux中修改文件名的多種方法總結(jié)

    在Linux系統(tǒng)中,通過命令行界面可以方便地修改文件名,本篇博客將介紹幾種常見的方法,包括mv命令、rename命令、find和mv命令的組合、sed命令以及使用bash腳本,這些方法可以根據(jù)實際需求進行選擇,提供了靈活性和多樣性,需要的朋友可以參考下
    2024-01-01
  • Shell管道和過濾器的使用

    Shell管道和過濾器的使用

    本文主要介紹了Shell管道和過濾器的使用,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2024-03-03

最新評論

襄垣县| 富平县| 高唐县| 阿拉善左旗| 馆陶县| 贡觉县| 天等县| 颍上县| 马关县| 辽宁省| 边坝县| 仙桃市| 阳原县| 公主岭市| 苍梧县| 扶绥县| 砚山县| 贵德县| 察哈| 松江区| 沙洋县| 英吉沙县| 玛沁县| 德州市| 永定县| 牙克石市| 江阴市| 左权县| 新绛县| 嘉鱼县| 武乡县| 兴宁市| 龙口市| 沁水县| 玉山县| 潞城市| 沾益县| 德州市| 乐山市| 额济纳旗| 得荣县|