linux shell学习笔记

一、获取变量值(两种方式):
变量赋值必须两边没有空格
linux shell学习笔记_第1张图片
$变量、${变量}

linux shell学习笔记_第2张图片
区别就是当你在字符串里面取值,能正确知道变量的结束而获取期望的值:
在这里插入图片描述
另外就是,单引号、双引号字符串区别,单引号原文输出,双引号解释输出:
在这里插入图片描述
二、cmd命令赋值给变量(两种方式):
反引号、$()
linux shell学习笔记_第3张图片linux shell学习笔记_第4张图片
注意,如果被替换的命令的输出内容包括多行(也即有换行符),或者含有多个连续的空白符,那么在输出变量时应该将变量用双引号包围,否则系统会使用默认的空白符来填充,这会导致换行无效,以及连续的空白符被压缩成一个。
linux shell学习笔记_第5张图片
linux shell学习笔记_第6张图片

三、$(())数学计算。通俗地讲,就是将数学运算表达式放在((和))之间,$(())只是取得计算之后的结果:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
利用 (( )) 进行逻辑运算。在这里插入图片描述
位置参数:
linux shell学习笔记_第7张图片
函数传递位置参数:
linux shell学习笔记_第8张图片

注意事项
如果参数个数太多,达到或者超过了 10 个,那么就得用${n}的形式来接收了,例如 ${10}${23}{
      }的作用是为了帮助解释器识别参数的边界,这跟使用变量时加{
      }是一样的效果。

Shell特殊变量:Shell $#、$*、$@、$?、$$
linux shell学习笔记_第9张图片
linux shell学习笔记_第10张图片
当 $* 和 $@ 不被双引号" "包围时,它们之间没有任何区别,都是将接收到的每个参数看做一份数据,彼此之间以空格来分隔。

但是当它们被双引号" "包含时,就会有区别了:

"$*"会将所有的参数从整体上看做一份数据,而不是把每个参数都看做一份数据。

"$@"仍然将每个参数都看作一份数据,彼此之间是独立的。

linux shell学习笔记_第11张图片$?:获取函数返回值或者上一个命令的退出状态
linux shell学习笔记_第12张图片
linux shell学习笔记_第13张图片
linux shell学习笔记_第14张图片
获取字符串长度

${#string_name}

在这里插入图片描述
字符串拼接(连接、合并)
linux shell学习笔记_第15张图片
字符串截取:
linux shell学习笔记_第16张图片在这里插入图片描述

进度[未完待续]

你可能感兴趣的:(linux)