当前位置:网站首页 > Shell脚本编程 > 正文

shell编程要学多久(shell编程基础)



1.1 shell是什么

当我们在linux终端输入一个命令时,会把他先转换为内核可以理解的命令,有内核执行并将执行结果返回到终端。shell在这里扮演的角色就是翻译。

请<a href='/tag/348'>添加</a>图片描述同时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表示禁用。
到此这篇shell编程要学多久(shell编程基础)的文章就介绍到这了,更多相关内容请继续浏览下面的相关推荐文章,希望大家都能在编程的领域有一番成就!

版权声明


相关文章:

  • shell编程技巧(shell编程实例详解)2026-04-06 14:00:13
  • shell编程技巧(shell编程步骤)2026-04-06 14:00:13
  • shell编程教程(shell编程实战)2026-04-06 14:00:13
  • ssh免密登录原理(ssh免密登录执行shell)2026-04-06 14:00:13
  • 批处理删除最后一行(删除最后一行 shell)2026-04-06 14:00:13
  • shell编程总结(shell编程100例)2026-04-06 14:00:13
  • shell编程实战(shell编程实例详解)2026-04-06 14:00:13
  • shell编程学习(shell编程要学多久)2026-04-06 14:00:13
  • shell编程要学多久(shell编程难吗)2026-04-06 14:00:13
  • shell编程学习(shell编程总结)2026-04-06 14:00:13
  • 全屏图片