Shell函数操作总结

作者: thorhill | 来源:发表于2018-02-06 14:50 被阅读54次

Shell函数操作

echo

#! /bin/bash

echo "Hello World !"

如何运行shell文件

终端输入 

`sh 脚本的文件名.sh`

变量

 定义变量

注意:等号两边不能有空格,否则会识别成指令

variable="some value"

让变量只读

readonly variable

删除变量

unset variable_name

使用变量(前面需要加美元符号)

echo $variable

echo $(variable)

脚本参数

传递参数: 

在终端输入 

`sh 脚本的文件名.sh 参数1 参数2 参数3`

获取第0个参数

param1=$0

获取参数个数

args_count=$#

获取所有参数 "参数1 参数2 参数3"表示

args=$*

获取所有参数 "参数1" "参数2" "参数3"表示

args2=$@

显示当前进程ID

pid=$$

后台运行的最后一个ID号

last_pid=$!

显示最后命令的退出状态。0表示没有错误,其他任何值表明有错误

exit_state=$?

if

注意必须以`fi`结尾

if

if condition

then

    command

fi

if - else

if condition

then

    command

else

    command

fi

if - elif - else

if condition1

then

    command1

elif condition2

then

    command2

else

    commandN

fi

 for

for var in item1 item2 ... itemN

do

    command

done

写成一行

for var in item1 item2 ... itemN; do command;done;

while

while condition

do

    command

done

until

与`while`相反 

until condition

do

    command

done

case

必须以`esac`结尾每个分支有两个分号,`*)`表示不匹配的分支

case $aNum in

    1)  echo '你选择了 1'

    ;;

    2)  echo '你选择了 2'

    ;;

    3)  echo '你选择了 3'

    ;;

    4)  echo '你选择了 4'

    ;;

    *)  echo '你没有输入 1 到 4 之间的数字'

    ;;

esac

shell支持break和continue

函数

funWithReturn(){

    read aNum

    read anotherNum

    return $(($aNum+$anotherNum))

}

函数获取参数的方法与脚本获取参数方法一致

引入其他脚本

使用`.`符号引入其他sh脚本

. ./test1.sh

或者使用source

source ./test1.sh

字符串

字符串插值

echo "${variable}"

字符串长度

length=${#variable}

子串

echo ${string:1:4}

字符串拼接

variable ="hello, "$your_name" !"

echo $greeting $variable

字符串可以使用单引号

单引号的字符串无法插值,并且无法用转义字符

数组

定义数组

array_name=(value0 value1 value2 value3)

数组赋值

array_name[0]=value0

数组长度

length=${#array_name[0]}

获取数组所有元素

echo "${my_array[*]}"

echo "${my_array[@]}"

关系运算符

算数运算符

- `+`,`-`,`*`,`/`,`%`,`=`,`==`,`!=`

关系运算符

`-eq` 相等?

`-ne` 不等?

`-gt` 大于?

`-lt` 小于?

`-ge` 大于等于?

`-le` 小于等于?

布尔运算符

 `!` 非

`-o` 或

 `-a` 与

逻辑运算符

`&&` 逻辑与

`||` 逻辑或

字符串运算符

 `=` 相等?

 `!=` 不等?

 `-z $str` 长度为0?

`-n $str` 长度不为0?

`$str` 为空?

文件测试运算符

`-d $file` 目录?

`-f $file` 普通文件?

`-r $file` 可读?

 `-w $file` 可写?

`-x $file` 可执行?

 `-s $file` 0字节?

`-e $file` 是否存在

Shell重定向

 `command > file` 将输出重定向到file

`command < file` 将输入重定向到file

 `command >> file` 将输出追加到file

`n > file` 将文件描述符为 n 的文件重定向到 file

`n >> file` 将文件描述符为 n 的文件以追加的方式重定向到 file

`n >& file` 将输出文件 m 和 n 合并

`n <& file` 将输入文件 m 和 n 合并

`<< tag` 将开始标记 tag 和结束标记 tag 之间的内容作为输入

更多命令参考 

Linux命令大全

相关文章

  • Shell函数操作总结

    Shell函数操作 echo #! /bin/bashecho "Hello World !" 如何运行shell...

  • 函数及中断控制

    shell函数 什么是函数 在shell环境中,将一些需要重复使用的操作,定义为公共的语句块,即可称为函数 使用函...

  • Linux Shell:date日期时间操作

    摘要:Linux,Shell 整理Linux Shell脚本中常用的日期操作,给予date命令,主要用法总结 获得...

  • shell(六)

    Shell 函数 linux shell 可以用户定义函数,然后在shell脚本中可以随便调用。shell中函数的...

  • Runtime函数库中关于协议Protocol的函数使用

    Runtime 函数库提供了很多函数用于一些操作,本篇主要总结关于协议Protocol 的操作函数:

  • spark RDD常用函数/操作

    spark RDD常用函数/操作 文中的代码均可以在spark-shell中运行。 transformations...

  • shell函数

    shell函数 死循环 shell函数 什么时候用到函数执行的功能类似根据实际需求 ,进行设置shell函数定义格...

  • shell编程二

    目录 一、shell中的函数二、shell中的数组三、shell告警系统 一、shell中的函数 函数就是把一段代...

  • 启动mongod并使用mongo shell连接

    很多mongodb操作进行之前需要先启动mongod,然后使用mongo shell连接,因此总结一篇通用操作流程...

  • 13. Shell 函数

    函数定义 linux shell 可以用户定义函数,然后在shell脚本中可以随便调用。shell中函数的定义格式...

网友评论

  • thorhill:谢谢大家的支持,有什么问题可以留言交流。

本文标题:Shell函数操作总结

本文链接:https://www.haomeiwen.com/subject/baygzxtx.html