婷婷综合国产,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
    久久www免费人成看片高清| 精品成a人在线观看| 成人激情综合网站| 欧美精品日韩一区| 亚洲国产精品人人做人人爽| 欧美日韩在线三级| 亚洲国产成人私人影院tom| 美日韩一区二区三区| 欧美二区乱c少妇| 丝瓜av网站精品一区二区| 欧美日韩一级二级| 亚洲18色成人| 日韩欧美精品三级| 日韩不卡一区二区| 欧美亚洲动漫精品| 亚洲成人免费在线| 91精品国产一区二区三区香蕉| 天天综合色天天| 成人av第一页| 中文字幕亚洲综合久久菠萝蜜| 国产美女在线精品| 国产精品卡一卡二| 欧美视频日韩视频在线观看| 亚洲综合一二区| 欧美一区二区三区白人| 国产一区二区福利视频| 日本一区二区三区dvd视频在线| 91农村精品一区二区在线| 亚洲综合999| 欧美日韩精品欧美日韩精品一综合 | 91精品国产综合久久久久| 午夜精品国产更新| 日韩视频一区二区三区| 国产99久久久国产精品| 久久蜜桃香蕉精品一区二区三区| 北条麻妃国产九九精品视频| 日本最新不卡在线| 久久午夜色播影院免费高清| www.66久久| 国产剧情一区在线| 日日夜夜精品视频天天综合网| 国产精品免费观看视频| 久久婷婷久久一区二区三区| 欧洲中文字幕精品| 成人激情免费网站| 久草在线在线精品观看| 亚洲 欧美综合在线网络| 中文字幕一区二区视频| 久久天堂av综合合色蜜桃网| 欧美一区二区三区系列电影| 欧美综合视频在线观看| 成人高清视频免费观看| 国产成人综合网| 国产主播一区二区| 日韩av一级片| 日本午夜一本久久久综合| 亚洲一区二区三区四区五区黄 | 日本韩国一区二区三区| 国产乱码精品一区二区三| 蜜桃精品视频在线| 奇米影视7777精品一区二区| 亚洲午夜影视影院在线观看| 亚洲精品久久久蜜桃| 中文字幕亚洲精品在线观看| 国产精品久久久久久亚洲毛片| 久久亚洲一级片| 久久精品一二三| 欧美韩国日本一区| 国产精品乱码一区二区三区软件 | 亚洲夂夂婷婷色拍ww47| 亚洲欧美日韩一区二区三区在线观看| 亚洲欧洲成人自拍| 亚洲日本在线看| 亚洲成人免费电影| 午夜精品久久一牛影视| 日本网站在线观看一区二区三区| 青草国产精品久久久久久| 韩日欧美一区二区三区| 国产成人亚洲综合a∨婷婷| 国产成人av一区二区三区在线观看| 国产精品白丝jk黑袜喷水| 国产成人综合网| 色天天综合久久久久综合片| 欧美日本一道本在线视频| 欧美一区二区大片| 久久久不卡影院| 国产精品国产三级国产a| 亚洲色图制服丝袜| 三级在线观看一区二区| 国产成人免费视| 色综合 综合色| 欧美一区二区三区四区五区| 日本一区二区三区在线不卡| 亚洲国产精品久久人人爱| 九九**精品视频免费播放| 91麻豆精东视频| 日韩女优视频免费观看| 亚洲色图在线看| 精品在线播放免费| 色94色欧美sute亚洲线路一久 | 国产一区二区在线观看视频| www.视频一区| 精品欧美一区二区久久| 日韩理论片在线| 狠狠色综合播放一区二区| 欧洲一区二区三区在线| 精品少妇一区二区三区日产乱码 | 国产精品久久久久久久久快鸭| 一区二区日韩av| 高清不卡在线观看av| 欧美疯狂做受xxxx富婆| 亚洲精品一区二区三区影院| 亚洲超碰97人人做人人爱| 中文成人综合网| 欧美精品一区二区三区四区 | 国产精品污污网站在线观看| 亚洲三级视频在线观看| 天天色天天爱天天射综合| 蓝色福利精品导航| av在线一区二区三区| 69p69国产精品| 亚洲欧洲美洲综合色网| 韩国在线一区二区| 欧美日韩综合不卡| 亚洲视频1区2区| jlzzjlzz亚洲女人18| 日韩三级免费观看| 亚洲h精品动漫在线观看| 成人午夜在线播放| 日韩欧美一区二区视频| 日韩精品高清不卡| 在线观看一区二区视频| 日韩午夜激情免费电影| 亚洲一区二区三区四区五区中文 | 欧美午夜精品久久久| 中文字幕精品一区二区精品绿巨人| 日韩不卡手机在线v区| 欧美日韩一区二区三区在线| 亚洲精品日产精品乱码不卡| 国产一区二区精品久久91| 欧美tk丨vk视频| 国产黄色91视频| 国产日韩欧美高清在线| 韩国av一区二区三区| 久久久久久麻豆| 丁香婷婷综合网| 亚洲精品中文字幕在线观看| 91蜜桃视频在线| 亚洲精品乱码久久久久久日本蜜臀 | 日韩欧美一区二区视频| 五月天一区二区三区| 欧美精品v国产精品v日韩精品| 亚洲欧美日韩久久| 99久久综合精品| 国产精品天美传媒沈樵| 国产一区二区三区在线观看免费| 精品国产污污免费网站入口| 婷婷亚洲久悠悠色悠在线播放| 欧美午夜宅男影院| 午夜婷婷国产麻豆精品| 91精品国产欧美一区二区| 日韩av一级电影| 日韩你懂的在线观看| 精油按摩中文字幕久久| 中文字幕精品一区二区三区精品| 9i看片成人免费高清| 亚洲精品视频一区二区| 成人动漫精品一区二区| 亚洲黄色片在线观看| 91精品国产一区二区三区蜜臀 | 日韩精品电影在线| 在线91免费看| 国产精品一二三四区| 国产精品国产三级国产普通话三级 | 蜜桃av一区二区在线观看| 国产精品天美传媒| 欧美日韩精品欧美日韩精品| 粉嫩一区二区三区在线看| 亚洲成年人网站在线观看| 久久久久国产精品免费免费搜索| 色呦呦一区二区三区| 国内久久精品视频| 亚洲午夜在线电影| 国产精品毛片久久久久久| 日韩视频中午一区| 欧美亚洲国产一区在线观看网站| 国产成人午夜电影网| 视频一区在线播放| 亚洲丝袜美腿综合| 欧美不卡123| 欧美一区二区三区在线观看 | 日韩一区二区精品| 91社区在线播放| 国产乱人伦精品一区二区在线观看| 一区二区三区美女| 亚洲日本中文字幕区| 国产精品欧美一级免费| 欧美刺激午夜性久久久久久久| 欧美日韩国产123区| 欧洲国产伦久久久久久久|