国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發 > Linux Shell > 正文

shell腳本返回值問題的解決

2020-07-26 23:24:58
字體:
來源:轉載
供稿:網友

如果學習過高級語言比如java和c語言等,此時你要是獲取一個函數的返回值,直接在函數里面寫上return即可,然后在函數執行時將返回結果賦值給某個變量即可。但是在shell腳本中限制較多,因此如果我們想實現這樣的功能的話,稍微困難一些,本人在實踐中做了一些該方面的實驗,并做筆記分享。

shell腳本的返回值可以使用return參數,但是return只能返回整數類型的值。因此實現比較復雜的功能的話shell腳本可能不太友好。

比如下面這個例子:

#!/bin/bashfunction in_path(){    cmd=$1    path=$2    oldIFS=$IFS    IFS=":"    retval=1    for directory in $path    do     if [ -x $directory/$cmd ];then        return 0     fi    done    IFS=$oldIFS    return 1}in_path ls $PATHif [ $? -eq 0 ];then  echo "yes"else  echo "no"fi

這個腳本實現的功能是在PATH環境變量中查找ls命令是否存在且可執行,如果是,就返回0,否則就返回1。返回0表示為真,此時if語句判斷為真的話輸出yes,為0的話輸出no。

有時候希望實現的功能是返回一些其他類型的變量值,比如字符串等等,此時我們在shell腳本中就不能再使用return關鍵字了,可以這么寫。

#!/bin/bashfunction in_path(){    cmd=$1    path=$2    oldIFS=$IFS    IFS=":"    retval=1    for directory in $path    do     if [ -x $directory/$cmd ];then        echo yes     fi    done    IFS=$oldIFS    echo no}aa=$(in_path $1 $PATH)if [[ $aa =~ "yes" ]];then    echo "the path has this bianliang"else    echo "no no no"fi

這也是一種實現獲取返回值結果的功能,還是挺好用的。但是如果你要是把if語句替換成case語句使用的話,那么函數中的echo語句和return語句返回的這個邏輯要明白的,和return不一樣的,比如:

到此這篇關于shell腳本返回值問題的解決的文章就介紹到這了,更多相關shell腳本返回值內容請搜索武林網以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持武林網!

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 新兴县| 唐海县| 嵩明县| 喜德县| 襄城县| 辽中县| 汉中市| 郁南县| 临夏县| 晋中市| 颍上县| 荥阳市| 红桥区| 万载县| 措美县| 德钦县| 马关县| 德钦县| 河北省| 容城县| 长白| 兴海县| 会泽县| 嵊州市| 宜春市| 文化| 吉木乃县| 吉林市| 桦川县| 宁海县| 芦溪县| 黄浦区| 丰镇市| 军事| 龙山县| 柯坪县| 云霄县| 嵊州市| 宁都县| 晋江市| 周口市|