linux shell

关注公众号 jb51net

关闭
首页 > 脚本专栏 > linux shell > Shell echo命令

Shell中echo命令及编程规范

作者:小啄学习日记

本文主要介绍了Shell中echo命令及编程规范,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

一.Shell脚本编程概述

1.基本概念

2.作用

Linux 系统中的 Shell 是一个特殊的应用程序,它介于操作系统内核与用户之间,充当 了一个“命令解释器”的角色,负责接收用户输入的操作指令(命令)并进行解释,将需要执 行的操作传递给内核执行,并输出执行结果。 常见的 Shell 解释器程序有很多种,使用不同的 Shell 时,其内部指令、命令行提示符 等方面会存在一些区别。

3.Linux系统中常见的Shell脚本种类

通过/etc/shells 文件可以了解当前Linux系统所支持的 Shell 脚本种类。

注: bash ( /bin/bash) 是目前大多数Linux版本采用的默认Shell。

4.应用场景

5.问题补充

5.1 为什么系统上合法的Shel1要写入/etc/she1ls这个文件?

    因为系统某些服务运行过程中,会去检查用户能够使用的Shell,而这些shell的查询就是借由/etc/shells这个文件。

5.2 用户什么时候可以取得shell来工作?用户默认会取得哪一个shell?

     当用户登录的时候,系统就会给我一个shell让我来用,而这个登录取得的Shell就记录在/etc/passwd这个文件内

二.Shell脚本的构成规范

编写脚本代码

vim 1.sh					#使用vim编辑器编写shell脚本
#!/bin/bash					#脚本解释器声明
#输出hello zhuzi		    #注释
echo "hello zhuzi"			#linux命令

三. Shell脚本的执行 

1.脚本执行逻辑

2.Shell脚本的执行方法

#法一:指定路径的命令,要求文件必须有x权限
[root@localhost ~]#chmod +x /root/first.sh 
[root@localhost ~]#cd /root/
[root@localhost ~]#./first.sh 
当前目录位于:
/root
#法二:指定Shell来解释脚本,不要求文件必须有x权限。
[root@localhost ~]#bash first.sh 
当前目录位于:
/root
#法三:source 与 . 脚本路径执行shell脚本
[root@localhost ~]#source first.sh 
当前目录位于:
/root
#法四:将脚本文件放入$PATH中目录的其中一个目录,直接输入脚本名
echo $PATH
/usr/local/sbin:/usr/local/bin :/usr/sbin :/usr/bin: / rpot/bin
#法五:自己创建一个路径(将脚本文件所在的绝对路径添加至PATH中)
在/etc/profile文件最后添加:export PATH=$PATH:脚本所在的绝对路径
直接输入脚本名执行脚本

2.1 方法一:指定路径的命令,要求文件必须有 x(可执行)权限

chmod +x /root/1.sh					#给脚本添加可执行权限
指定绝对路径: /root/1.sh 			
指定相对路径: ./1.sh

2.2 方法二:指定shell来解释脚本,不要求文件必须有 x (可执行)权限

bash(sh)执行脚本, 系统会创建一个子shell环境,并在这个子shell环境中执行这个脚本 ,脚本执行结束后系统就会自动退出bash环境

2.3 方法三: source 与 . 脚本路径执行shell脚本(不建议使用)

 不建议使用source 与 . 执行脚本会在当前 shell 环境中执行脚本 影响当前环境

2.4 方法四: 将脚本文件放入$PATH中目录的其中一个目录,直接输入脚本名执行

echo $PATH
/usr/local/sbin:/usr/local/bin :/usr/sbin :/usr/bin: / rpot/bin

以下两个目录一般放自己创建或第三方应用程序生成的命令文件

  • /usr/local/sbin:只有管理员能执行的命令
  • /usr/local/bin :所有用户能够执行的命令

以下两个目录一般放系统自带或者系统生成的命令文件

  • /usr/sbin :只有管理员能执行的命令
  • /usr/bin: 所有用户能够执行的命令

/ root/bin:不存在

将当前文件做个软连接放入或者使用cp复制到 /usr/local/bin目录下
直接输入脚本名执行脚本

使用cp命令

2.5 方法五:自己创建一个路径(将脚本文件所在的绝对路径添加至PATH中)

在/etc/profile文件最后添加:export PATH=$PATH:脚本所在的绝对路径
直接输入脚本名执行脚本

[root@Zhuzi ~]#vim /etc/profile
export PATH=$PATH:/root/shell  
#export使环境变量的值全局环境下生效,不加export默认在当前环境变量下生效
[root@Zhuzi ~]#source /etc/profile   #刷新配置文件
[root@Zhuzi ~]# echo $PATH           #查看当前路径
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin:/root/shell
[root@Zhuzi ~]# chmod +x 1.sh        #给脚本加上执行权限
[root@Zhuzi ~]#1.sh                  #输入脚本名 直接执行
hello zhuzi 

3.脚本错误调试

脚本错误种类

检查脚本错误

总结:脚本错误常见的有三种区别

四.重定向与管道符

由于Shell脚本“批量处理”的特殊性,其大部分操作过程位于后台,不需要用户进行干预,因此要学会提取、过滤执行信息变得十分重要,所以我们需要重定向和管道。

1.交互式硬件设备标准输出输入

类型设备文件文件描述编号默认设备
标准输入/dev/stdin0键盘
标准输出/dev/stdout1显示器
标准错误输出/dev/stderr2显示器

2.重定向具体操作

重定向就是:不通过标准输出到屏幕上,输出到你指定的位置

类型操作符用途
重定向输入<从指定的文件读取数据,而不是从键盘输入
重定向输出>将输出结果保存到指定的文件(覆盖原有内容)
重定向输出>>将输出结果换行添加在文件尾部
重定向错误输出2>将错误信息保存到指定的文件(覆盖原有内容)
重定向错误输出2>>将错误信息追加到指定的文件中
混合输出&>将标准输出、标准错误的内容保存到同一个文件中

示例1:重定向输入与输出修改密码

示例2:覆盖追加

#将12345678输入到文件log.txt中
[root@Zhuzi ~]#echo "12345678" > log.txt
[root@Zhuzi ~]#cat log.txt 
12345678
[root@Zhuzi ~]#
#再将112234写入log.txt中,这个时候会覆盖原来的数据
[root@Zhuzi ~]#echo "112234" > log.txt 
[root@Zhuzit ~]#cat log.txt 
112234
[root@Zhuzi ~]#
#继续将112234写入log.txt中,使用>>,这个时候会追加原来的数据
[root@Zhuzi ~]#echo "112234" >> log.txt 
[root@Zhuzit ~]#cat log.txt 
112234
112234

示例3:混合输出

3.管道符

管道符号 “|”

将左侧的命令输出结果,作为右侧命令的处理对象

3.1 使用管道符修改密码

3.2 查看文件内容

五.echo命令:打印输出内容

选项作用
-n不追加换行
-e\b&nbsp;   退格
\c    抑制更多的输出
\n    换行

\t    横向制表符

\v    纵向制表符

echo -n

echo -e \b          

echo -e \c          

echo -e \n          

echo -e \t           

 echo -e \v         

到此这篇关于Shell中echo命令及编程规范的文章就介绍到这了,更多相关Shell echo命令内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

您可能感兴趣的文章:
阅读全文