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

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`;do
       echo -n -e "\b$time"
       sleep 1
 done
颜色代码

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

字颜色:30—–37
  echo -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—–47
  echo -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"
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值