shell脚本从入门到精通(中级)之提高篇

shell 脚本入门到精通(中级)

一、shell 脚本的执行

二、输出格式化

一、shell 脚本的执行

1. 脚本执行的4种方法

$ ls /tmp/test.sh
/tmp/test.sh
#!/bin/bash
# test.sh
# 这里借助SHLVL这个变量,SHLVL可以显示shell的层级,
# 每启动一个shell,这个值就加1
echo "shell level :$SHLVL"
echo "hello world!"
  1. 切换到shell脚本所在目录执行

    [email protected]:/# cd /tmp/

    [email protected]:/tmp# chmod +x test.sh

    [email protected]:/tmp# ./test.sh

    shell level :2

    hello world!

  2. 以绝对路径执行

    [email protected]:~# chmod +x /tmp/test.sh

    [email protected]:~# /tmp/test.sh

    shell level :2

    hello world!

  3. 直接使用bash或sh 来执行bash shell脚本

    [email protected]:/tmp# bash test.sh

    shell level :2

    hello world!

    [email protected]:/tmp# sh test.sh

    shell level :1

    hello world!

  4. 在当前shell 环境中执行

    [email protected]:/tmp# . test.sh

    shell level :1

    hello world!

    [email protected]:/tmp# source test.sh

    shell level :1

    hello world!

总结:注意看SHLVL的值,前3种方式都在子shell中执行(sh除外),第4种在当前shell种执行。

2.调试脚本

bash -x script.sh 跟踪调试shell脚本

例:

[email protected]:/tmp# bash -x test.sh
+ echo ‘shell level :2‘
shell level :2
+ echo ‘hello world!‘
hello world!

-x 打印所执行的每一行命令以及当前状态

set -x : 在执行时显示参数和命令

set +x : 禁止调试

set -v : 当命令进行读取时显示输入

set +v : 禁止打印输入

二、输出格式化

1. C语言风格的格式化

#!/bin/bash
printf "%-5s %-10s %-4s\n" NO. Name Mark
printf "%-5s %-10s %-4.2f\n" 1 Sarath 80.3456
printf "%-5s %-10s %-4.2f\n" 2 James 90.9989
[email protected]:/tmp# ./test.sh
NO.   Name       Mark
1     Sarath     80.35
2     James      91.00

2. echo

  1. 不换行

    echo -n "hello world"

  2. 转义

    echo -e "hello\t\tworld"

  3. 彩色输出
颜色 重置 绿
前景色 0 30 31 32 33 34 35 36 37
背景色 0 40 41 42 43 44 45 46 47

echo -e "\e[1;31m This is red test \e[0m"

echo -e "\033[47;31m This is red test \033[0m"

原文地址:https://www.cnblogs.com/gaoyuanzhi/p/10021791.html

时间: 2024-08-29 22:00:46

shell脚本从入门到精通(中级)之提高篇的相关文章

京峰Linux Shell编程从入门到精通

课程介绍:Shell是系统的用户界面,提供了用户与内核进行交互操作的一种接口.它接收用户输入的命令并把它送入内核去执行. -------------------课程目录------------------- <Shell编程从入门到精通> ├1.linux下shell编程基础入门_(new).mp4├2.Shell编程之变量及LAMP导航菜单编写_(new).mp4├3.Shell编程之IF条件语句各种案例演练_(new).mp4├4.使用if条件语句编写MySQL备份脚本_(new).mp4

Shell脚本快速入门

读研几年主要做的是控制领域的开发研究,做的硬件以及底层开发比较多.现在毕业了,开始发力软件领域,那么就让我从最简单基础的shell编程开始吧争取打扎实基础. 从程序员的角度来看,Shell本身是一种用C语言编写的程序,从用户的角度来看,Shell是用户与Linux操作系统沟通的桥梁.用户既可以输入命令执行,又可以利用 Shell脚本编程,完成更加复杂的操作.在Linux GUI日益完善的今天,在系统管理等领域,Shell编程仍然起着不可忽视的作用.深入地了解和熟练地掌握Shell编程,是每一个L

Lua 脚本汇编-入门到精通

Why Lua --------------------------------------------- 一个功能强大,快速,轻量级,可嵌入的脚本语言.程序语法构造简单,用关键数组来实现强大的数据描述功能,同时还提供一些可扩展的语义特征动态类型,无需编译,由解释器先翻译成lua虚拟机的指令, 然后在虚拟机(基于寄存器实现)上运行.使用一个采用增量策略的GC来管理内存 1.Fast, 最快的脚本语言,luajit更是接近C 2.Clean ANSI C 可移植性好. 3.Embeddable,可

8.15_Linux之bash shell脚本编程入门篇(二)以及文件查找和压缩的使用

bash shell脚本编程入门篇(二) read命令的使用 作用: 使用read来把输入值分配给一个或多个shell变量: -p指定要显示的提示 -t TIMEOUT read从标准输入中读取值,给每个单词分配一个变量,所有剩余单词都被分配给最后一个变量 EX.read -p "Enter a filename:" FILE 条件选择之if的使用 if的作用:选择执行(注意:if语句可嵌套) 单分支 if 判断条件;then 条件为真的分支代码 fi EX.单分支案例 双分支 if

8.17_Linux之bash shell脚本编程入门篇(三)之循环以及函数function的使用

bash shell脚本编程入门篇(三)之循环 什么是循环执行? 将某代码段重复运行多次 重复运行多少次: 循环次数事先已知 循环次数事先未知 有进入条件和退出条件 相关命令:for, while, until,selet, for命令的使用 作用: 依次将列表中的元素赋值给"变量名"; 每次赋值后即执行一次循环体; 直到列表中的元素耗尽,循环结束 命令格式: for 变量名 in 列表; do 循环体(正常执行的执行命令) 语句1 语句2 语句3 ... done 列表生成方式: (

08 bash特性--shell脚本编程入门

shell脚本编程入门 编程语言介绍 变量 变量:就是给计算机内存中的一段空间命令,命令的这个空间就叫做变量,而再给这个空间放入值的过程,我们就叫做给变量赋值: bash下的变量的内部数据类型:(这是数据在内存中存放的格式,默认情况下,shell程序下一班都不会去申明数据类型,所以,我们的bash程序默认数据为字符类型) 字符型(string) 数值:整型(int).浮点型 布尔类型:真假 同时,脚本一般在执行的时候都会自动启动一个子shell进程,命令行中的启动的脚本会继承当前shell环境变

服务器硬件工程师从入门到精通视频教程-基础篇发布了!

课程目标 了解服务器硬件的基本概念和分类方式,掌握服务器各个组成硬件的相关知识和技术,熟悉服务器硬件组装和软件安装流程,掌握常见品牌服务器主板的BIOS设置.固件更新以及板载RAID的配置方法,熟悉服务器操作系统和驱动程序的安装,掌握服务器远程管理功能的配置和使用,了解服务器硬件启动过程和常见硬件故障的排除. 适用人群 服务器硬件工程师.桌面支持工程师.系统运维工程师.系统集成工程师.网络管理员以及其它IT从业人员. 课程简介 一.为什么要制作<服务器硬件工程师从入门到精通>系列课程? 做为一

服务器硬件工程师从入门到精通视频教程-RAID篇发布了!

课程目标 了解服务器RAID技术的基本概念.各个RAID级别的工作原理和特点.以及RAID的实现方式和硬件架构等.掌握Intel.LSI.Adaptec.HighPoint.MARVELL以及PROMISE这些RAID卡厂家的RAID配置与管理,掌握Windows和Linux系统下RAID驱动加载与安装方法. 适用人群 服务器硬件工程师.桌面支持工程师.系统运维工程师.系统集成工程师.网络管理员以及其它IT从业人员. 课程简介 本课程是<服务器硬件工程师从入门到精通>系列课程继"基础

shell脚本基础入门(二)

以下为本教程的<入门篇>,适于初学者快速入门以及老手查缺补漏. 第一招 HelloWorld 第一式:echo echo "Hello World" echo -n "Hello World" # 不带换行 echo -e '\e[0;33;1mHello\e[0m World' # 带颜色的玩法 echo -e '\e[0;33;4mHello\e[0m World' # 带颜色+下划线 echo -e '\e[0;33;5mHello\e[0m Wo