Notes8变量,别名,重定向,/until,shift,函数,/test,运算,流程控制

Posted 码农编程录

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Notes8变量,别名,重定向,/until,shift,函数,/test,运算,流程控制相关的知识,希望对你有一定的参考价值。


1.变量:Shell是一个用C语言编写的程序,它是用户使用Linux的桥梁,硬件>内核>shell>文件系统

定义变量修饰词:readonly定义只读变量,unset删除变量。


如果字符串中有空格,必须需要使用引号(str=hello world会报错)。

获取字符串长度:echo $#strexpr length “$str”
截取字符串:echo $str:1:4:显示字符串第1到第4个字符。
echo $str:4:从左边第4个字符开始,一直到结束。
echo $str:0-6:3:从倒数第6个字符开始的3个字符。
echo $str:0-6:从倒数第6个字符开始,一直到结束。

file=/dir1/dir2/dir3/my.file.txt
$file#*/:删掉第一个 / 及其左边的字符串:dir1/dir2/dir3/my.file.txt     / 可换成 .#*.
$file##*/:删掉最后一个 / 及其左边的字符串:my.file.txt

$file%/*:删掉最后一个 / 及其右边的字符串:/dir1/dir2/dir3
$file%%/*:删掉第一个 / 及其右边的字符串:(空值)

2.设置与别名,printf,重定向,exit,until,shift:set指令能设置所使用shell的执行方式



不添加引号,转义将不被执行,如下转义。

echo中>覆盖输出。>>输出到文件末尾。

command > /dev/null 2>&1不在屏幕上显示输出结果和错误。/dev/null 是一个特殊文件,写入到它的内容都会被丢弃,从该文件读取内容,什么也读不到,起到"禁止输出下面文字"的效果。

# shift.sh
until [ $# -eq 0 ]
do
echo "第一个参数为: $1 参数个数为: $#"
shift
done

$./shift.sh 1 2 3 4
结果显示:第一个参数为: 1 参数个数为: 4
第一个参数为: 2 参数个数为: 3
第一个参数为: 3 参数个数为: 2
第一个参数为: 4 参数个数为: 1

# shift1.sh
sum=0
until [ $# -eq 0 ]
do
sum=`expr $sum + $1`
shift
done
echo "sum is: $sum"

$./shift1.sh 10 20 15
结果显示:45

3.declare与let:let命令和双小括号 (( )) 的用法是类似的,它们都是用来对整数进行运算,不能对小数(浮点数)或字符串进行运算


4.函数与传参:shell脚本传递的参数中包含空格,应使用单引号或双引号将该参数括起来,以便于脚本将这个参数作为整体来接收。if [ -n str1 ] 当串的长度大于0时为真(串非空)



5.test:用于检查某个条件是否成立,它可以进行数值、字符和文件三个方面的测试

6.运算:算术、关系、布尔、逻辑、字符串、文件运算

算术:

关系:


布尔:

逻辑:



文件测试运算:

7.流程控制:if、for、while、case

if:

for:

while:

until:

case:

break与continue:

以上是关于Notes8变量,别名,重定向,/until,shift,函数,/test,运算,流程控制的主要内容,如果未能解决你的问题,请参考以下文章

第三章:管道符重定向与环境变量

shell介绍命令历史 命令补全和别名 通配符输入输出重定向

shell介绍历史命令命令补全和别名通配符输入输出重定向

8.1 shell介绍 8.2 命令历史 8.3 命令补全和别名 8.4 通配符 8.5 输入输出重

重定向指令是不是覆盖配置的别名

Vue路由重定向、别名与导航守卫