第一章、终端打印、算术运算、常用变量

前端之家收集整理的这篇文章主要介绍了第一章、终端打印、算术运算、常用变量前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

第一章、终端打印、算术运算、常用变量

1、终端打印

echo

[root@ceshi ~]# echo hello world

hello world

[root@ceshi ~]# echo 'hello world'

hello world

[root@ceshi ~]# echo "hello world"

hello world

printf

[root@ceshi ~]# printf "hello world\n"  # n代表换行
hello world
[root@ceshi ~]# vi info.sh        
#!/bin/bash

printf "%-5s %-10s %-4s\n" Num Name Mark
printf "%-5s %-10s %-4d\n" 1 aa 90
printf "%-5s %-10s %-4.2f\n" 1 bbb 80.1234
printf "%-5s %-10s %-4.3f\n" 1 ccccc 60.1234

%-5s 表示格式为左对齐,且宽度为5的字符串代替(-表示左对齐),不使用-则是右对齐(s表示字符串)
%d 代表十进制整数
%-4.3f 表示格式为左对齐宽度为4,'.3'代表保留3位小数,f代表浮点数

[root@ceshi ~]# /bin/bash info.sh 
Num   Name       Mark
1     aa         90  
1     bbb        80.12
1     ccccc      60.123

格式替代符号

@H_403_16@
  • %b 代表对应的参数被视为有要被处理的转义序列之字符串
  • %c ASCII字符。显示对应参数的第一个字符
  • %d,%i 都代表十进制整数
  • %e,%E,%f 代表浮点类型
  • %g,%e或%f 转换,看哪一个较短,则删除结尾的零
  • %G,%E或%F 转换,看哪一个较短,则删除结尾的零
  • %o 不带正负号的八进制值
  • %s 代表字符串类型
  • %u 不带正负号的十进制
  • %x 不带正负号的十六进制值,使用a-f表示10-15
  • %X 不带正负号的十六进制值,使用A-F表示10-15
  • %% 字面意义的%
  • 转义序列

    @H_403_16@
  • \a 警告字符,通常为ASCII的bel字符
  • \b 后退
  • \c 抑制输出结果中任何结尾的换行字符(只在%b指示符参数中有效),而且,任何留在参数里的字符、任何接下来的参数以及任何留在格式字符串中的字符,都被忽略。
  • \f 换页(英文formFeed
  • \n 换行
  • \r 回车(英文Carriage return)
  • \t 水平制表符,(其实就是所在的行不换行了)
  • \v 垂直制表符,
  • \ 字面意义上的反斜杠
  • \ddd 表示1-3位数八进制值的字符,仅在格式字符串中有效
  • \0ddd 表示1-3位的八进制值字符
  • 在echo中转义换行符包含

    echo -e “包含转义序列的字符串”

    -e :就可以识别出字符串里边的转义序列,不加e默认不识别转义序列

    [root@ceshi ~]# echo -e "你好\t你好\t"
    你好    你好
    [root@ceshi ~]# echo -e "你好\v你好\v"
    你好
        你好
    
    # 不加-e 就没有识别转义序列
    [root@ceshi ~]# echo "你好\t你好\t"   
    你好\t你好\t
    [root@ceshi ~]# echo "你好\v你好\v"   
    你好\v你好\v

    打印彩色输出

    [root@ceshi ~]# echo -e "\033[5;31;42m你好\033[0m"

    参考:http://www.jb51.cc/article/p-szaukbkl-up.html

    2、算术运算

    整数运算

    let运算命令

    [root@ceshi ~]# vi let.sh
    #!/bin/bash
    num1=2
    num2=3
    let result=num1+num2
    echo $result
    
    运行:
    [root@ceshi ~]# /bin/bash let.sh 
    5
    @H_403_16@
  • 自加操作 let num1++

  • 自减操作 let num1--

  • 简写形式:let no+=10let ; let no-=20

    ​ 等同于:let no=no+10; let no=no-20

  • 操作符[]运算方法

    [root@ceshi ~]# vi fangkuohao.sh
    #!/bin/bash
    num1=2
    num2=3
    result=$[$num1+num2]
    echo $result
    
    运行:
    [root@ceshi ~]# /bin/bash fangkuohao.sh 
    5

    注:使用方法和let相似,在[]中可以使用$前缀

    (())运算方法

    [root@ceshi ~]# vi xiaokuohao.sh
    #!/bin/bash
    n1=2
    n2=3
    result=$((n1+n2))
    echo $result

    expr运算方法

    [root@ceshi ~]# expr 2 + 3         
    5
    [root@ceshi ~]# num1=5
    [root@ceshi ~]# r=$(expr $num1 + 5)
    [root@ceshi ~]# echo $num1
    5
    [root@ceshi ~]# echo $r
    10

    expr的常用运算符

    • +
    • -
    • *
    • /
    • % 取模运算,也叫取余

    精密计算

    高级运算工具:bc

    它可以执行浮点运算和一些高级函数

    [root@ceshi ~]# echo "1.25*3" | bc
    3.75

    设定小数精度(也就是小数点显示几位)

    scale=2 代表小数点显示2位

    [root@ceshi ~]# echo "scale=2;7/3" | bc  
    2.33

    进制转换

    十进制转二进制:
    [root@ceshi ~]# a=192
    [root@ceshi ~]# echo "obase=2;$a" |bc
    11000000
    
    二进制转十进制:
    [root@ceshi ~]# b=11000000                   
    [root@ceshi ~]# echo "obase=10;ibase=2;$b"|bc
    192

    计算平方和平方根

    求2的三次方:
    [root@ceshi ~]# echo "2^3"|bc  
    8
    
    求100的平方根
    [root@ceshi ~]# echo "sqrt(100)"|bc
    10

    3、常用变量

    给变量赋值的不同方式

    双引号"" 允许用过$符号引用其他变量值

    单引号'' 禁止引用其他变量值,$视为普通字符

    反撇号`` 将命令执行的记过输出给变量;如:

    sed -i s/"B"/"b"/g `grep -rl "B" --exclude="*.sql" ceshi/*`  将grep得到的文件传输给sed使用

    用户自定义变量

    设置变量的作用范围

    格式:

    export 变量名

    export 变量名=变量值

    清除变量名:

    unset 变量名

    自定义变量
    [root@ceshi ~]# export a            #自定义变量a
    [root@ceshi ~]# export b=222        #自定义变量b
    [root@ceshi ~]# a=111               #给变量a赋值
    
    [root@ceshi ~]# echo $a             #打印变量a的值
    111
    [root@ceshi ~]# echo $b             #打印变量b的值
    222
    
    清除变量:
    [root@ceshi ~]# unset a             #清除变量a
    [root@ceshi ~]# unset b             #清除变量b
    [root@ceshi ~]# echo $a             #输出为空
    
    [root@ceshi ~]# echo $b

    环境变量

    环境变量配置文件

    查看环境变量:

    set 命令可以查看所有的shell变量,其中包括环境变量

    常见的环境变量

    • $USER 查看当前用户
    • $logname 登录相关信息
    • $UID 当前用户的UID,root用户为0
    • $SHELL 打印当前用户的shell编辑器
    • $HOME 打印当前用户的主目录
    • $pwd 打印当前所在目录
    • $PATH 用户输入的命令在哪里目录中查找
    • $PS1
    • $PS2
    • $RANDOM 显示一个随机

    位置变量

    表示为:$n (n为1-9之间的数字)

    #./test.sh one two three four five six
    • $0 表示文件名本身

    • $1 表示one

    • $2 表示two

      依次类推

    预定义变量

    @H_403_16@
  • $# 命令行中位置参数的个数
  • $* 所有位置参数的内容
  • $? 上一条命令执行后返回的状态,为0表示成功,为非0表示执行异常或出错
  • $$ 当前所在进程的进程号
  • $! 后台运行的最后一个进程号
  • $0 当前执行的进程/程序名
  • 猜你在找的Bash相关文章