婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識庫 > Shell函數的7種用法介紹

Shell函數的7種用法介紹

熱門標簽:excel地址地圖標注 百度地圖的地圖標注 百度地圖標注圖標更換 杭州機器人外呼系統 陜西電銷卡外呼系統怎么安裝 旅游地圖標注大全 佛山高德地圖標注中心 東莞電銷機器人價格一覽表 地圖標注超出范圍怎么辦

1. 在shell文件內部定義函數并引用:

復制代碼 代碼如下:

[~/shell/function]# cat factorial.sh
#!/bin/bash
function factorial
{
factorial=1
for (( i=1;i = $1;i++ ))
        do
        factorial=$[ $factorial * $i ]
        done
echo $1的階乘是:$factorial
}
echo '程序名':$0,用于求階乘
factorial $1
[~/shell/function]# ./factorial.sh 10

程序名:./factorial.sh,用于求階乘
10的階乘是:3628800

2.返回值

函數返回碼是指函數最后一條命令的狀態碼,可以用于函數返回值
使用return命令手動指定返回值:

復制代碼 代碼如下:

[~/shell/function]# cat return.sh
#!/bin/bash
function fun1 {
  read -p "enter a: " a
  echo -n "print 2a: "
  return $[ $a * 2 ]
}
fun1
echo "return value $?"
[~/shell/function]# ./return.sh
enter a: 100
print 2a: return value 200

由于shell狀態碼最大是255,所以當返回值大于255時會出錯。

復制代碼 代碼如下:

[~/shell/function]# ./return.sh
enter a: 200
print 2a: return value 144

3.函數輸出

為了返回大于255的數、浮點數和字符串值,最好用函數輸出到變量:

復制代碼 代碼如下:

[~/shell/function]# cat ./fun_out.sh
#!/bin/bash
function fun2 {
  read -p "enter a: " a
  echo -n "print 2a: "
  echo $[ $a * 2 ]
}
result=`fun2`
echo "return value $result"
[~/shell/function]# ./fun_out.sh    
enter a: 400
return value print 2a: 800

4.向函數傳遞參數(使用位置參數):

復制代碼 代碼如下:

[~/shell/function]# cat ./parameter.sh
#!/bin/bash
if [ $# -ne 3 ]
then
    echo "usage: $0 a b c"
    exit
fi
fun3() {
    echo $[ $1 * $2 * $3 ]
}
result=`fun3 $1 $2 $3`
echo the result is $result
[~/shell/function]# ./parameter.sh  1 2 3
the result is 6
[~/shell/function]# ./parameter.sh  1 2
usage: ./parameter.sh a b c

5.全局變量與局部變量

默認條件下,在函數和shell主體中建立的變量都是全局變量,可以相互引用,當shell主體部分與函數部分擁有名字相同的變量時,可能會相互影響,例如:

復制代碼 代碼如下:

[~/shell/function]# cat ./variable.sh   
#!/bin/bash
if [ $# -ne 3 ]
then
    echo "usage: $0 a b c"
    exit
fi
temp=5
value=6
echo temp is: $temp
echo value is: $value
fun3() {
    temp=`echo "scale=3;$1*$2*$3" | bc -ql`  
    result=$temp
}
fun3 $1 $2 $3
echo "the result is $result"
if [ `echo "$temp > $value" | bc -ql` -ne 0 ]
then
    echo "temp is larger"
else
    echo "temp is still smaller"
fi
[~/shell/function]# ./variable.sh  12 3 2
temp is: 5
value is: 6
the result is 72
temp is larger

在這種情況下,在函數內部最好使用局部變量,消除影響。

復制代碼 代碼如下:

[~/shell/function]# cat ./variable.sh
#!/bin/bash
if [ $# -ne 3 ]
then
    echo "usage: $0 a b c"
    exit
fi
temp=5
value=6
echo temp is: $temp
echo value is: $value
fun3() {
    local temp=`echo "scale=3;$1*$2*$3" | bc -ql`  
    result=$temp
}
fun3 $1 $2 $3
echo "the result is $result"
if [ `echo "$temp > $value" | bc -ql` -ne 0 ]
then
    echo "temp is larger"
else
    echo "temp is still smaller"
fi
[~/shell/function]# ./variable.sh  12 3 2
temp is: 5
value is: 6
the result is 72
temp is still smaller

6.向函數傳遞數組變量:

復制代碼 代碼如下:

[~/shell/function]# cat array.sh
#!/bin/bash
a=(11 12 13 14 15)
echo ${a[*]}
function array(){
  echo parameters : "$@"
  local factorial=1
  for value in "$@"
  do
    factorial=$[ $factorial * $value ]
  done
  echo $factorial
}
array ${a[*]}
[~/shell/function]# ./array.sh
11 12 13 14 15
parameters : 11 12 13 14 15
360360

7.函數返回數組變量

復制代碼 代碼如下:

[~/shell/function]# cat array1.sh
#!/bin/bash
a=(11 12 13 14 15)
function array(){
  echo parameters : "$@"
  local newarray=(`echo "$@"`)
  local element="$#"
  local i
  for (( i = 0; i $element; i++ ))
  {
    newarray[$i]=$[ ${newarray[$i]} * 2 ]   
  }
  echo  new value:${newarray[*]}
}
result=`array ${a[*]}`
echo ${result[*]}
[~/shell/function]# ./array1.sh
parameters : 11 12 13 14 15 new value:22 24 26 28 30

您可能感興趣的文章:
  • Shell中關于時間和日期的函數總結
  • Linux 在Shell腳本中使用函數實例詳解
  • shell 使用數組作為函數參數的方法(詳解)
  • Shell使用Epoch進行日期時間轉換和計算的幾個小函數
  • Linux Shell函數返回值
  • shell中函數的應用
  • PowerShell中的函數重載示例
  • Shell中函數返回值超出問題
  • Shell腳本中使用function(函數)示例
  • 淺談Shell中的函數

標簽:朝陽 通遼 青島 南充 西藏 隨州 雅安 延邊

巨人網絡通訊聲明:本文標題《Shell函數的7種用法介紹》,本文關鍵詞  Shell,函數,的,7種,用法,介紹,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《Shell函數的7種用法介紹》相關的同類信息!
  • 本頁收集關于Shell函數的7種用法介紹的相關信息資訊供網民參考!
  • 推薦文章
    婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av
    色婷婷精品大视频在线蜜桃视频| 99久久99精品久久久久久| 国产成人啪午夜精品网站男同| 欧美一区二区三区不卡| 久久91精品国产91久久小草| 日本一区二区三区国色天香 | 97精品久久久午夜一区二区三区| 欧洲视频一区二区| 成人免费在线观看入口| 日本乱人伦一区| 性做久久久久久| 久久久电影一区二区三区| 亚洲小说欧美激情另类| 日本高清不卡在线观看| 一区二区三区四区视频精品免费 | 国内外成人在线| 欧美日韩美女一区二区| 免费成人你懂的| 一区二区三区中文字幕在线观看| 波波电影院一区二区三区| 26uuu精品一区二区在线观看| 欧美美女网站色| 国产精品久久久久久亚洲伦| 国产精品日韩精品欧美在线| 欧美日韩一区二区在线观看 | 亚洲激情校园春色| 成人午夜碰碰视频| 成人av综合在线| 精品卡一卡二卡三卡四在线| 亚洲日穴在线视频| 久久久91精品国产一区二区三区| 91高清在线观看| 99视频一区二区| 成人黄页在线观看| 精品在线免费观看| 一区二区视频在线看| 成人黄色777网| 成人app网站| 国产不卡在线播放| 日本不卡的三区四区五区| 日本亚洲最大的色成网站www| 一区二区三区四区精品在线视频 | 日本伊人精品一区二区三区观看方式| 国产精品传媒视频| 日本一区二区三区免费乱视频| 欧美一区日韩一区| 欧美色欧美亚洲另类二区| 亚洲青青青在线视频| 国产精品国产a| 国产欧美日韩不卡免费| 成人综合在线网站| 成人永久aaa| 精品夜夜嗨av一区二区三区| 国产精品高潮呻吟久久| 亚洲精品日产精品乱码不卡| 日韩美女视频一区二区| 亚洲成人av在线电影| 欧美激情一区二区三区全黄| 久久综合久久综合亚洲| 欧美在线免费视屏| 国产精品美女视频| 日韩欧美一级特黄在线播放| 337p粉嫩大胆色噜噜噜噜亚洲| 精品日韩欧美一区二区| 国产精品综合在线视频| 免费观看久久久4p| 欧美日韩一区二区三区不卡| 在线观看日韩电影| 国产校园另类小说区| 国产专区欧美精品| 91精品国产乱码久久蜜臀| www.激情成人| 久久影院午夜论| 亚洲日本韩国一区| 2021久久国产精品不只是精品| 91精品久久久久久久99蜜桃| 一区二区三区精品在线| 国产精品污污网站在线观看| 国产精品人人做人人爽人人添| 床上的激情91.| 在线视频国内自拍亚洲视频| 337p亚洲精品色噜噜狠狠| 国产亚洲综合在线| 国产精品一卡二| 成人avav影音| 国产在线一区观看| 国产激情精品久久久第一区二区| 久久精品免视看| 精品国产免费视频| 国产成都精品91一区二区三| 成人精品gif动图一区| 亚洲免费高清视频在线| 一区二区三区在线观看网站| 91精品国产综合久久久久久漫画| 日韩高清一级片| 欧美成va人片在线观看| 久久国产免费看| 久久亚洲欧美国产精品乐播| 亚洲人快播电影网| 国产精品99久久不卡二区| 欧美午夜一区二区| 久久久亚洲国产美女国产盗摄| 亚洲午夜在线电影| 色天使色偷偷av一区二区| 欧美一级在线免费| 亚洲国产一区二区三区| 91福利视频久久久久| 久久久精品人体av艺术| 亚洲电影在线免费观看| 成人美女视频在线观看18| 成人免费看片app下载| 2020日本不卡一区二区视频| 国产精品另类一区| 麻豆成人免费电影| 日韩欧美国产成人一区二区| 国产欧美一区二区精品性| 亚洲二区视频在线| 国产精品美女久久久久高潮| 丁香天五香天堂综合| 欧美一区二区三区在线观看视频| 午夜精品福利久久久| 亚洲成人先锋电影| 欧美日韩电影在线| 国产精品久久影院| 成人av电影观看| 在线视频一区二区三| 国产精品乱码一区二三区小蝌蚪| 91日韩在线专区| 国产精品天天摸av网| 色噜噜狠狠色综合中国| 国产精品初高中害羞小美女文| 亚洲欧美aⅴ...| 精品美女一区二区三区| 国产精品午夜免费| 亚洲一区av在线| 精品国一区二区三区| 欧美日本在线播放| 欧美猛男男办公室激情| 在线观看视频欧美| 色噜噜久久综合| 久久久久国产精品麻豆ai换脸 | 国产精品一区在线| 久久丁香综合五月国产三级网站| 亚洲人妖av一区二区| 精品视频一区三区九区| 亚洲综合一区二区精品导航| 日本欧美在线观看| 久久国产精品99久久人人澡| 中文一区二区在线观看| 亚洲一区二区在线视频| 国产精品一卡二| 伊人性伊人情综合网| 亚洲人妖av一区二区| 亚洲1区2区3区视频| 成人黄色免费短视频| 亚洲精品久久7777| 欧美丰满少妇xxxbbb| 日韩女同互慰一区二区| 91小视频在线| 久久精品人人做人人综合 | 亚洲影视资源网| 欧美亚洲综合色| 国产一区二区成人久久免费影院 | 久久久久99精品一区| 亚洲精品在线观看网站| 99久久久精品| 日韩一区欧美一区| 欧美性感一区二区三区| 狠狠v欧美v日韩v亚洲ⅴ| 亚洲一卡二卡三卡四卡五卡| 9人人澡人人爽人人精品| 蜜桃av一区二区| 国产综合色在线| 精品一二线国产| 国产亚洲欧洲997久久综合| 天天色天天操综合| 国产精品午夜在线观看| 日韩欧美国产精品| 色诱视频网站一区| 成人动漫中文字幕| 国产色综合一区| 6080yy午夜一二三区久久| 91视频精品在这里| 国产麻豆成人传媒免费观看| 一区二区三区精品在线| 国产精品嫩草影院com| 欧美一区二区精品| 日韩一区二区三区免费看| 7878成人国产在线观看| 一本色道a无线码一区v| 在线视频你懂得一区| 麻豆国产欧美一区二区三区| 久久福利资源站| 国产一区二区三区蝌蚪| 日本伊人色综合网| 麻豆成人综合网| 亚洲天堂av一区| 波多野结衣在线aⅴ中文字幕不卡| 日本系列欧美系列| 亚洲成a天堂v人片|