shell编程总结
  5HAFzPFxGStu 2023年11月02日 32 0


一,执行shell程序文件有三种方法
(1)#sh file
(2)# . file
(3)#source file

shell常用的系统变量
$ # :保存程序命令行参数的数目
$ ? :保存前一个命令的返回码
$ 0 :保存程序名
$ * :以("$1 $2...")的形式保存所有输入的命令行参数
$ @ :以("$1""$2"...)的形式保存所有输入的命令行参数


二,shell函数介绍
Shell中引用其他文件:
Shell使用source引用其他文件,这类似于C语言中的include。

               source  file_path_name

这样可以把函数定义在一个文件中,在另外一个文件中调用这个文件中的函数。
 
Shell中函数的定义:
格式1、

function    fun() 

 { 

                   command 

 } 


 格式2 


 function fun 

 { 

                  command 

 }


 

Shell中函数的调用:

         funname     参数1   参数2   ...     参数n
         没有参数时调用:   funname

 

Shell中参数传递:

         在函数中使用:$#获取参数的个数;
         在函数中使用:$@和$*获取参数内容;
         在函数中使用:$1,    $2,    ...      $(n)获取第一个参数,第二个参数等

         在函数中获取函数参数的方法,和调用shell脚本的参数是一样的。

Shell中函数的返回值:

        在shell中,函数的返回值,即return返回值,存在在$?内置变量,

       可以使用$?,获取函数返回值。

 

 

 全局变量:

        在shell中定义函数后,函数会与返回值,但是有时候返回值是一个列表,可以用全局变量返回:

        export   global_value_name=""

        function   test_fun()

        {
               global_value_name='abc  edf   aaa'
        }
        echo global_value_name

三:if表达式介绍
条件表达式

    文件表达式

if [ -f  file ]    如果文件存在
if [ -d ...   ]    如果目录存在
if [ -s file  ]    如果文件存在且非空
if [ -r file  ]    如果文件存在且可读
if [ -w file  ]    如果文件存在且可写
if [ -x file  ]    如果文件存在且可执行   

    整数变量表达式

if [ int1 -eq int2 ]    如果int1等于int2   
if [ int1 -ne int2 ]    如果不等于    
if [ int1 -ge int2 ]       如果>=
if [ int1 -gt int2 ]       如果>
if [ int1 -le int2 ]       如果<=
if [ int1 -lt int2 ]       如果<
   

       字符串变量表达式

If  [ $a = $b ]                 如果string1等于string2
                                字符串允许使用赋值号做等号
if  [ $string1 !=  $string2 ]   如果string1不等于string2       
if  [ -n $string  ]             如果string 非空(非0),返回0(true)  
if  [ -z $string  ]             如果string 为空
if  [ $sting ]                  如果string 非空,返回0 (和-n类似)   

【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2023年11月08日 0

暂无评论

推荐阅读
  X5zJxoD00Cah   2023年11月30日   18   0   0 GroupEmail字符串
  gBkHYLY8jvYd   2023年11月19日   13   0   0 输出格式进制字符串
5HAFzPFxGStu