linux shell 课堂笔记

本文详细介绍了Shell脚本中的变量类型,包括全局和局部变量,以及如何使用`export`导出变量。还讲解了条件判断,如`test`命令和中括号 `[ ]` 的用法,以及流程控制结构如`if`、`case`和`循环`。此外,提到了正则表达式在字符串操作中的应用,以及函数的创建和使用。文章最后强调了实践操作的重要性。
摘要由CSDN通过智能技术生成

(尚硅谷)
 #!/bin/sh
开头
这里的全集变量和局部变量有点儿区别。。。
env查看所有全局环境变量,。
自定义变量,变量名等于变量值即可了。。
中间不能有空格。。
赋值一句话(中间有空格的)要用引号来括起来。。
自定义出来的变量env中没有。。
但是set中间有。。
export可以导出定义的变量为全局变量。。
但是:子shell更改成全局变量,父shell不变,支队他的子shell是全局变量。
相对路径的方式是打开了一个子shell,source和.  是直接在当前环境中打开。
使用相对绝对路径的方法要记得先用export导出。

不可做数值计算,除非用过shell的特殊方式。
定义只读变量::例如:readonly b = 5
unset可以撤销定义的变量。

特殊变量::
$n 后面输入的第n个值。。 
basename 可以得到脚本本来的名称。。
$ #几个变量。
$ * 打印所有的输入参数变量(与后面的循环有关)
$ ? 返回值,一般正确的就是0.。


运算:
expr 1 + 2  要有空格
较为麻烦::
可用:$[]中要加转义的小于大于号   $(())中间加正常的小于大于号
里面写计算表达式即可。。
而用expr赋值要用命令替换:可用反引号或者是$加小括号

条件判断::
test命令:
使用是test $a = ahdk类似这种返回0则代表正确。。
简写:中括号:[]中间一定要有空格
小于等于大于都要转义
-lt -gt -eq
还可以判断文件的权限
-e 文件存在
-f 文件存在并且是一个常规文件
-d 文件存在并且是一个目录。
逻辑与非与其他语言用法一样。。


$*    $@的区别,前者把所有的参数都看成是一个整体,后者也代表命令行中所有的参数,不过$@把每个参数区分对待。。
加双引号可以看出区别。。


流程控制::重点:

1 顺序,分支,循环结构。。
if【】  ;(then)
fi
放在一个中括号中,要用-a 来表示逻辑与。。

2 if elif else

3 case   大体跟其他语言的语法差不多 注意俩个分号结束;
 
循环。。

read 。。。
后缀t指定时间,几秒不输入自动输出,p带提示输入的文本。

函数::::
系统函数:所有的命令都可以看成是系统函数,函数在使用时候也要加上命令替换的符号。
basename 可以获取文件的名称,不过是相当于做一个字符串的剪切
 带上参数suffix(其实就是把要去除的后缀写在后面)也可去除后缀。。
   dirname截取名称之前的路径返回;
 值得注意的点就是一定要把命令带上$()。。。命令替换
自定义函数::
调用之前一定先要声明,实参形参用法。
 多多实操练习!!!
shell编程的正则表达式
时间编程中经常要进行截取字符串拼接字符串等等操作。
最基本的正则,管道操作加grep 加关键字就可以过滤。。
  ^ 可以匹配一行的开头
  $ 匹配一行的结尾。用法:也要用grep放在关键字的前或者后
这俩个可以一起使用。。。中间什么都不加可以匹配到空行(grep后缀你显示行号)
  . 匹配任意字符 类似r..t 可以配到root这样
  * 匹配到前一个字母出现任意次的字符。
 .* 匹配所有的。。
中括号或用正则可以有不可思议的强大功能。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

ZSup{A}

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值