Shell脚本

通过shell语言将完成一个任务的所有代码写入一个文件,并给执行权限

  • shell脚本开头必须脚本运行环境,以#!组合来组成;e,g.#!/bin/bash指定该脚本运行解析由/bin/bash来完成(也可以写成/usr/bin/env bash);
  • 以字符#进行注释;
  • 最好加入脚本说明
#!/bin/bash
#Author:
#Created Time:
#Script Description:

Shell两种启动方式

  • 给予访问执行权限,./来执行
  • 通过解释器来执行,可以不需要执行权限
    e.g.
bash start.sh
bash -x  start.sh  #debug 模式

Shell中的特殊符号

 !:                执行历史命令(history 拿到历史命令,!+指定行号)   !! 执行上一条命令(快捷键ctr+r 从历史命令中搜索关键字拿到命令)$:                变量中取内容符(echo $? #上次命令是否执行成功;0-成功;1-失败 )+ - * / %:        对应数学运算  加 减 乘 除 取余数  &:                后台执行;:               分号可以在shell中一行执行多个命令,命令之间用分号分割    \:                转义字符``:               反引号 命令中执行命令    echo "today is `date +%F`"' ':              单引号,脚本中字符串要用单引号引起来,但是不同于双引号的是,单引号不解释变量" ":              双引号,脚本中出现的字符串可以用双引号引起来    ~:                家目录    # cd ~ 代表进入用户家目录*:                星号是shell中的通配符  匹配所有?:                问号是shell中的通配符  匹配除回车以外的一个字符
[list]:             匹配[list]中的任意单个字符
[!list]:            匹配除list中的任意单个字符
{string1,string2,...}: 匹配string1,string2或更多字符串重定向
>      覆盖输入
>> 追加输入
< 输出
<< 追加输出|:    管道符 上一个命令的输出作为下一个命令的输入   cat filename | grep "abc"

shell运算符

expr 1 \* 2  #必须以空格隔开;expr 只能运算整数
expr 1 + 2 &>/dev/null; echo $? #将运算结果写入到黑洞(后台执行);并输出执行是否成功
#bc 交互式计算器(可能需要安装)(支持浮点数的运算;通过scale来指定位数;)
scale =2 #指定位数 为2
100/33
3.33#命令行的使用
echo "使用率:`echo "scale=2 ;123/6789*100"|bc`%"
$((  1+2 ))#双小括号也可以用来运算;不需要空格;只能运算整数

shell脚本的退出

exit NUM #退出脚本,释放资源; NUM是一个整数;该值可以被$?捕捉到;0<=NUM<=255
e.g.
#shell脚本:exit.sh
#!/bin/bash
echo "123"
exit 12#执行
./exit.sh
123
echo $?
12

echo命令(标准输出)

标准输出
echo [-ne]string
-n 不要自动换行
-e 若字符串中出现特殊字符,则特别加以处理,而不会将它当成一般文字输
e.g.
\a 发出警告声;
\b 删除前一个字符;
\t 插入tab;
\n 换行且光标移至行首;
\c 最后不加上换行符号;
\f 换行但光标仍旧停留在原来的位置;
\r 光标移至行首,但不换行;
\v 与\f相同;
\ 插入\字符;
\0nnn 打印nnn(八进制)所代表的ASCII字符; 备注:数字0 不要理解成字母o
\xNN 打印NN(十六进制)所代表的ASCII字符;

λ echo -n "current_time:";date +%F
current_time:2020-10-24

倒计时脚本

 for time in `seq 9 -1 0`;doecho -n -e "\b$time"sleep 1done

颜色代码

格式:echo -e “\033[背景色;字颜色 字符串\033[0m”

字颜色:30—–37echo -e “\033[30m 黑色字 \033[0m”echo -e “\033[31m 红色字 \033[0m”echo -e “\033[32m 绿色字 \033[0m”echo -e “\033[33m 黄色字 \033[0m”echo -e “\033[34m 蓝色字 \033[0m”echo -e “\033[35m 紫色字 \033[0m”echo -e “\033[36m 天蓝字 \033[0m”echo -e “\033[37m 白色字 \033[0m”
字背景颜色范围:40—–47echo -e “\033[40;37m 黑底白字 \033[0m”echo -e “\033[41;37m 红底白字 \033[0m”echo -e “\033[42;37m 绿底白字 \033[0m”echo -e “\033[43;37m 黄底白字 \033[0m”echo -e “\033[44;37m 蓝底白字 \033[0m”echo -e “\033[45;37m 紫底白字 \033[0m”echo -e “\033[46;37m 天蓝底白字 \033[0m”echo -e “\033[47;30m 白底黑字 \033[0m”
特殊效果:\033[0m 关闭所有属性\033[1m 设置高亮度\033[4m 下划线\033[5m 闪烁\033[7m 反显\033[8m 消隐

Read命令(标准输入)

默认接受键盘的输入,回车符代表输入结束

-p打印信息
-t限定时间
-s不回显
-n输入字符个数

登录脚本

#!/bin/bash
clear
read -p "login:" acc
echo -e -n "password:"
read -t5 -s -n6 pwd
echo
echo "account:$acc;password:$pwd"

Shell学习-特殊符号、运算符、颜色代码、标准输入输出相关推荐

  1. Shell 学习笔记之运算符

    基本运算符 算术运算符 val = expr 2 + 2 需要注意的是 表达式和运算符之间需要有空格(比如2 + 2,不能是2+2) 两边最外面的字符是`,在esc键下面,不是引号哦 乘号* 前面必须 ...

  2. Linux学习笔记(5)(标准输入输出)

    指令:基本的计算机操作,例如:加法.减法等 程序:指令的集合,一般有执行属性.看作:菜谱 进程:是程序的实例,是程序执行的过程.看作:按照菜谱进行做菜的过程 查看进程: ps -ef cat的工作原理 ...

  3. 在数据中心中使用光缆颜色代码的重要性

    在数据中心中使用光缆颜色代码可以有效地帮助技术人员更好地管理光缆,并减少人为错误.工作人员可以通过查看光缆颜色代码轻松获取设备的信息,可以简化冗余的检查过程.而充分利用光缆彩色编码系统,可以节省大量的 ...

  4. 【转】shell学习笔记(一)——学习目的性、特殊字符、运算符等

    1 学习shell的目的性 写之前我们先来搞清楚为什么要学shell,学习要有目的性 shell简单.灵活.高效,特别适合处理一些系统管理方面的小问题 shell可以实现自动化管理,让系统管理员的工作 ...

  5. shell颜色代码(ANSI控制码)

    Shell 颜色代码 代码 执行结果 总结(表格形式; \E 标识符在 PS1 环境变量中不生效,只能用\033) ANSI 其它控制码 代码 # col.sh # 颜色代码标识 \003 可以替换为 ...

  6. linux eof tmp目录,Linux学习-标准输入输出(示例代码)

    标准输入输出重定向--Linux下任何一个命令的执行,他都会经过下图所示的流程: 目录 三种I/O设备 把I/O重定向入文件 tr 使用管道链接命令 实际案例 一.I/O设备Linux提供了三种I/O ...

  7. shell学习-基础篇

    shell学习-基础篇 Linux? 挺好的! shell是基础- 最近利用闲暇时间在 http://c.biancheng.net/ 网站上学习了shell基础篇,整理成博客以加深理解 文章目录 L ...

  8. [Bash Shell] Shell学习笔记

    1. Shell简介 Shell本身是一个用C语言编写的程序,它是用户使用Unix/Linux的桥梁,用户的大部分工作都是通过Shell完成的.Shell既是一种命令语言,又是一种程序设计语言.作为命 ...

  9. 最佳实践系列:前端代码标准和最佳实践

    最佳实践系列:前端代码标准 @窝窝商城前端(刘轶/李晨/徐利/穆尚)翻译于2012年 版本0.55 @郑昀校对 isobar的这个前端代码标准和最佳实践文档,涵盖了Web应用开发的方方面面,我们翻译了 ...

最新文章

  1. svn仓库出现already locked error解决方法:cleanup
  2. mysql ssd inodb___细看InnoDB数据落盘 图解 MYSQL
  3. 使用HTML5+CSS3制作圆角内发光按钮----示例
  4. 一根火柴可以将一瓶大可乐吊起来吗?
  5. 2020 CSP-S 游记
  6. shell脚本启动kafka集群的多台节点
  7. Go1.18 新特性:高效复制,strings, bytes 库新增 Clone 功能
  8. 浅析 JNDI / DataSource / ConnectionPool 三者
  9. Spring Cloud Eureka详解
  10. Cknife流量分析
  11. Java技术栈(跳槽,面试必备)
  12. PDF的图片怎么提取?这两种方法值得收藏
  13. python 方向键控制_python方向键控制上下左右代码
  14. 如何思考产品价值定位?
  15. 【20220207】【信号处理】希尔伯特变换定义及解调原理
  16. python 开发app应用
  17. iOS--中文排序、全拼音排序
  18. 梦幻诛仙手游服务器信息失败,梦幻诛仙手游充值失败 元宝不到账解决办法
  19. 信息系统项目管理师核心考点(四十六)采购工作说明书(SOW)
  20. 论文写作笔记2:AIME-相关论文

热门文章

  1. mysql-查看用户权限
  2. unity代码更换ui图片_关于Unity UI的动静图集分离,你需要了解这些!
  3. 包含视觉的多传感器融合的方案或者论文
  4. Flask-Restful超详解、序列化
  5. 研究PS过的图片信息残留问题
  6. python txt文件处理软件,对python .txt文件读取及数据处理方法总结
  7. [歪谈]为什么项目经理很难有节操的选举
  8. Java多线程常用面试题
  9. oppo手机android功能,升级Android 7.1之后,OPPO手机迎来了这些新功能
  10. 服务器系统坏了如何导出sql数据库,服务器系统坏了如何导出sql数据库