返回顶部
首页 > 资讯 > 服务器 >Shell函数的7种用法介绍
  • 586
分享到

Shell函数的7种用法介绍

函数Shell 2022-06-04 21:06:00 586人浏览 泡泡鱼
摘要

1. 在shell文件内部定义函数并引用: [~/shell/function]# cat factorial.sh #!/bin/bash function factorial { facto

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

--结束END--

本文标题: Shell函数的7种用法介绍

本文链接: https://lsjlt.com/news/18281.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • Shell函数的7种用法介绍
    1. 在shell文件内部定义函数并引用: [~/shell/function]# cat factorial.sh #!/bin/bash function factorial { facto...
    99+
    2022-06-04
    函数 Shell
  • length函数用法介绍
    length函数用于返回指定字符串的字符数或字节数。可以用于计算字符串的长度,以便在查询和处理字符串数据时进行操作和判断。 需要注意的是length函数计算的是字符串的字符数,而不是字节数。对于多字节字符集,一个字符可能由多个字节组成。因此...
    99+
    2023-10-22
    length length()函数
  • Shell中的函数、函数定义、作用域问题介绍
    说起函数调用,相信大家也不会陌生,然而对于初学Shell的我来说,Shell中函数调用方式却有点让我不太习惯,自己也走了不少的弯路,因为传递参数时出了一个很“自然”的错误,也让我吃了不少的苦头,所以总结一下...
    99+
    2022-06-04
    函数 定义 作用
  • MySQL常用函数的用法介绍
    这篇文章主要介绍“MySQL常用函数的用法介绍”,在日常操作中,相信很多人在MySQL常用函数的用法介绍问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”MySQL常用函数的用法...
    99+
    2024-04-02
  • Python Get()函数用法介绍
    一、简介 Python是一种高级编程语言,它具有简单、易学、高效等特点。而Python get()函数是其中一个重要的函数。该函数用于返回指定键的值,如果键不存在,则返回默认值None。 下面将从各个方面对Python get()函数做详细...
    99+
    2023-10-23
    python 开发语言
  • Linux Shell中几种括号和引号的用法介绍
    本篇内容介绍了“Linux Shell中几种括号和引号的用法介绍”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!Shell 脚本中经常需要用到...
    99+
    2023-06-16
  • C++中strtok()函数的用法介绍
    函数原型:char *strtok(char *s, const char *delim);Function:分解字符串为一组字符串。s为要分解的字符串,delim为分隔符字符串。D...
    99+
    2022-11-15
    strtok C++
  • Oracle函数的种类及功能介绍
    Oracle SQL 是应用广泛的关系型数据库管理系统,在进行数据处理时,函数是一种非常重要的功能。Oracle 提供了多种不同类型的函数,可以在 SQL 语句中使用,提供了强大的数据...
    99+
    2024-03-02
    数学函数 字符函数 查询函数 聚合函数
  • MySQL5.6中常用的函数用法介绍
    本篇内容主要讲解“MySQL5.6中常用的函数用法介绍”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“MySQL5.6中常用的函数用法介绍”吧! ...
    99+
    2024-04-02
  • pytorch中的.view()函数的用法介绍
    目录一、普通用法 (手动调整size)二、特殊用法:参数-1 (自动调整size)一、普通用法 (手动调整size) view()相当于reshape、resize,重新调整Tens...
    99+
    2024-04-02
  • Python函数介绍:abs函数的用法和示例
    Python函数介绍:abs函数的用法和示例一、abs函数的用法介绍在Python中,abs函数是一个内置函数,用于计算给定数值的绝对值。它可以接受一个数字参数,并返回该数字的绝对值。abs函数的基本语法如下:abs(x)其中,x是要计算绝...
    99+
    2023-11-03
    用法 示例 Python函数 ABS函数
  • Python函数介绍:dir函数的用法和示例
    Python函数介绍:dir函数的用法和示例Python是一种开源的、高级的、解释性的编程语言。它可用于开发各种类型的应用程序,包括Web应用程序、桌面应用程序和游戏等。Python提供了大量的内置函数和模块,这些函数和模块可以帮助程序员快...
    99+
    2023-11-03
    Python函数 关键词: dir函数 用法示例
  • Python函数介绍:type函数的用法和示例
    Python函数介绍:type函数的用法和示例Python是一种强大而灵活的编程语言,提供了许多内置函数帮助我们编写更高效的代码。其中一个非常有用的函数是type()函数。type()函数可以帮助我们确定一个对象的类型,并返回类型的名称。在...
    99+
    2023-11-03
    示例 Python函数 type函数
  • Python函数介绍:round函数的用法和示例
    Python函数介绍:round函数的用法和示例概述:在Python中,round()是一个内置函数,用于对数字进行四舍五入。它可以将浮点数或整数值四舍五入到指定的小数位数。round()函数具有以下语法形式:round(number, n...
    99+
    2023-11-03
    round函数:舍入 示例:四舍五入 用法:数据舍入
  • Python函数介绍:repr函数的用法和示例
    Python函数介绍:repr函数的用法和示例Python是一种广泛应用于各种领域的高级编程语言,它为开发者提供了众多强大的函数和方法。其中,repr函数是一个非常有用的函数之一,它可以用于返回一个对象的字符串表示。在Python中,rep...
    99+
    2023-11-03
    Python 函数 repr函数
  • Python函数介绍:sorted函数的用法和示例
    Python函数介绍:sorted函数的用法和示例Python拥有许多内置函数,其中一个非常常用的函数是sorted()函数。sorted()函数用于对可迭代对象进行排序,并返回一个新的已排序的列表。本文将介绍sorted()函数的用法,并...
    99+
    2023-11-03
    函数 sorted 示例
  • Python函数介绍:sum函数的用法和示例
    Python函数介绍:sum函数的用法和示例Python作为一门强大和灵活的编程语言,提供了许多内置的函数来简化代码的编写和操作的实现。其中,sum函数是一个非常实用的函数,用于对序列中的元素求和。在本文中,我们将详细介绍sum函数的用法,...
    99+
    2023-11-03
    SUM函数 示例 关键词:Python函数
  • Python函数介绍:pow函数的用法和示例
    Python函数介绍:pow函数的用法和示例Python是一种多功能的编程语言,它提供了许多内置函数,可以帮助程序员更高效地完成任务。其中一个常用的内置函数是pow函数。pow函数用于计算一个数的幂,并返回计算结果。pow函数的使用方法很简...
    99+
    2023-11-03
    用法 示例 pow函数
  • Python函数介绍:__import__函数的用法和示例
    Python函数介绍:__import__函数的用法和示例Python作为一门高级编程语言,其强大的函数库以及函数的使用方法也是吸引越来越多开发者以及爱好者的原因之一。在Python中,内置的__import__函数是一个非常强大但比较少用...
    99+
    2023-11-03
    示例 Python函数介绍 __import__函数
  • Python函数介绍:hex函数的用法和示例
    Python函数介绍:hex函数的用法和示例Python是一种非常强大且广泛使用的编程语言,它提供了许多内置函数来方便我们实现各种操作。其中,hex函数就是一个十分有用的函数,它可以将整数转换成十六进制表示的字符串。本篇文章将介绍hex函数...
    99+
    2023-11-04
    示例 Python函数 hex函数
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作