1.1 shell是什么
当我们在linux终端输入一个命令时,会把他先转换为内核可以理解的命令,有内核执行并将执行结果返回到终端。shell在这里扮演的角色就是翻译。
同时shell也是一种编程语言。有很多版本,目前linux默认装载的是。
查看当前系统应用的
临时切换
查看当前系统支持哪些版本shell。
1.2 环境变量
前面提到相当于一个翻译官,那么是怎么找到要执行的命令(执行命令其实是执行脚本程序)的应用的位置呢?答案是通过环境变量。使用如下命令查看当前用户环境变量(不同用户有不同的环境变量)。
法2:可以通过修改文件来实现,这种方式是非临时修改。根目录下使用可以看到(个人环境变量),(个人用户环境变量),这两个文件都可以实现相同的功能,只不过前者是每打开一个新的窗口都会被加载一次,而后者在切换用户时加载一次。在与两个文件中修改环境变量则是系统级别,所有用户都会生效。
2.1 文档命令
shell命令有19种,只要是linux的命令都可以被称shell命令。如此多的命令我们肯定记不住,我们着重讲解文档命令,这样不懂的命令使用文档命令就可以看到命令的详细介绍。
我们最常用的文档命令就是.下面应用他查下的用法。
2.2 管道服务
符号表示管道。
上面会先执行,然后把执行结果传递给管道,管道再传给执行过滤。可以多次使用管道。
2.3 输入输出
linux所有的文件、目录都有一个文件描述符作为唯一标识。我们可以使用文件描述符来访问linux操作系统的所有文件、目录。后面我们也会体会到这种机制的好处。
首先将之前查询到的内容保存在文件1.txt中,然后使用将文件1.txt标识为3,类型是标准输入。现在执行,效果如下。

可以看到,标准输入指的是将3所指代的内容输入到目标文件/命令,而标准输出则是从目标文件/命令输出到标识3所指代文件,输入输出是相对于目标而言的。
注意:(STDIN),(STDOUT),(STDERR)是系统自带的标识,请不要使用。
其实上面重定向已经包含了输入输出的作用了,下面单独使用他的输入、输出功能,将ls -a的内容从1.txt输出。
2.4 shell脚本
2.4.1 hello,world
为实现某个任务,将多个shell命令组合成可执行文件就是shell脚本。shell脚本用文档编辑器就可以编写,给予可执行权限就可以执行。
新建。
表示注解,其作用是解释脚本功能,记录脚本的创建、修改时间、作者等。
指定了该shell脚本的解析器,建议文件后缀与解析器的指定匹配,比如就对应解析器。
指定执行权限。参数表示给所有用户赋予执行权限,则表示给当前用户赋予权限。
执行结果如下。
另外,将a.sh的路径加到环境变量中,就可以像其它普通的shell命令一样执行他了。
2.4.2 定义变量
使用命令可以查看已经被linux系统占用的变量(相当于java的保留字),由于个数太多,我们筛选了少部分看即可。
在b.sh中随便打个系统变量看看。
执行结果如下。
其它常用的shell系统变量参考下表。
自己定义变量很简单,有字母、数字、下划线组成。局部变量和全局变量定义示范如下。
执行结果如下。
2.4.3 数组
参考下列代码,值的注意的是,shell中数组长度可变。
2.4.4 运算符
2.4.5 进制转换
八进制以开头,十六进制。
可以自定义进制,比如二进制。
2.4.6 条件判断
下面代码在实际shell编程中常用于脚本连接:下一个shell脚本常常依赖于上一个脚本,我们先依次检查每一个脚本,避免前面脚本的错误影响后面脚本的结果。
执行 则输出"The last exit code is 0",执行则输出“The last exit code not 0",这是因为e.sh都还没有创建呢。
条件判断的格式还有扩展写法。
常用的一些类型的判断有默认方法,这些方法常常结合上面的if语句使用,十分方便。
2.4.7 循环语句
for循环。
while循环:当条件满足时执行。
util循环:直到满足条件停止。
使用关键字可以跳出循环,而且还可以跳出嵌套循环,下面给出了示例代码,特别注意空格与示例一致,不加空格的后果您感兴趣可以尝试。
执行结果如下。
下面示例跳出双层循环。
执行结果如下,说明在跳出内存循环时也跳出了第二层外层循环。
关键字可以跳出当层循环,这里不再赘述。
2.4.8 用户交互
最简单的交互。使用实现用户交互,让用户输入密码。
执行结果如下。
第二种方式是通过菜单选择来实现交互。
效果如下。
2.4.9 文本批量处理
过滤,批量行处理,批量列处理。号称文本处理三剑客,特别常用。这里仅仅抛砖引玉,读者需要使用他们进行文本处理时可以参考博客:https://www.cnblogs.com/along21/p/10366886.html.
2.4.10 调试
- 在命令行提供参数:$sh -x script.sh-
- .脚本开头提供参数:#!/bin/sh -x
- 在脚本中用set命令启用or禁用参数:其中set -x表示启用,set +x表示禁用。
版权声明:
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若内容造成侵权、违法违规、事实不符,请将相关资料发送至xkadmin@xkablog.com进行投诉反馈,一经查实,立即处理!
转载请注明出处,原文链接:https://www.xkablog.com/shellbc/43639.html