首页 > 系统相关 >Shell 编写摘要 (一)

Shell 编写摘要 (一)

时间:2023-02-11 16:33:13浏览次数:51  
标签:返回 Shell 变量 未定义 varname ...... 摘要 编写

PS:要转载请注明出处,本人版权所有。

PS: 这个只是基于《我自己》的理解,

如果和你的原则及想法相冲突,请谅解,勿喷。

前置说明

  本文作为本人csdn blog的主站的备份。(BlogID=025)
  本文发布于 2016-08-25 17:06:11,现用MarkDown+图床做备份更新。blog原图已丢失,使用csdn所存的图进行更新。(BlogID=025)

环境说明

  无

前言


  无





Shell


  注释:本文中主要参考《shell脚本学习指南》和自己的理解所写而成

  1. Shell 变量问题
算术展开: 
    $((算术表达式))     返回表达式的值
    eg: echo $((1+2*3))     返回7
    
变量替换(主要还是用来测试一个变量是否定义且不为空):
    $(varname:-0)   varname未定义或者为null,返回0
        用处:用于测试变量是否定义
    $(varname:=0)   varname未定义或者为null,给varname赋值0
        用处:用于给未定义变量赋初值
    $(varname:?msg) varname未定义或者为null,返回msg
        用处:用于当变量未定义时,提示一个信息
    $(varname:+1) varname定义或者不为null,返回1
        用处:用于测试变量已经存在切不为null,返回1


位置参数(用于向脚本传入参数):
    ${num}    获取传入num'th的值
    $#        返回传入参数总的个数
    $@        以多个字符串方式返回所有传入参数
    $*        以一个字符串方式返回所有传入参数

特殊符号:
    $? 最近命令执行的返回值,0 表示成功执行,非0 表示有异常
  1. Shell 脚本流控制
	逻辑运算
		test 等效于 [ ...... ]
		eg: test "$var" = "$var1" 等效 [ "$var" = "$var1" ]

下面是非常重要的test 选项表

rep_img
rep_img
rep_img
if 控制语句
格式:
    if pipeline
    then 
    ......
    elif pipeline
    then
    ......
    else
    ......
    fi
	
for 控制语句(支持continue,break)
格式:
    for var [in list]
    do
    ......
    done

while 控制语句(支持continue,break)
格式:
    while condition
    do
    ......
    done
until 控制语句(支持continue,break)
格式:
    until condition
    do
    ......
    done
  1. 脚本函数
函数定义(支持return 从函数返回):
functionName(){
    ........
    return val
}

函数调用(特殊变量$#,$@,$*等特殊位置变量会被临时覆盖):
funcitonName arg0 arg1 arg2 ...




后记


参考文献




打赏、订阅、收藏、丢香蕉、硬币,请关注公众号(攻城狮的搬砖之路)
qrc_img

PS: 请尊重原创,不喜勿喷。

PS: 要转载请注明出处,本人版权所有。

PS: 有问题请留言,看到后我会第一时间回复。

标签:返回,Shell,变量,未定义,varname,......,摘要,编写
From: https://www.cnblogs.com/Iflyinsky/p/17111941.html

相关文章