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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了第一章终端打印算术运算常用变量相关的知识,希望对你有一定的参考价值。

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

1、终端打印

echo

[[email protected] ~]# echo hello world

hello world

[[email protected] ~]# echo ‘hello world‘

hello world

[[email protected] ~]# echo "hello world"

hello world

printf

[[email protected] ~]# printf "hello world\n"  # n代表换行
hello world
[[email protected] ~]# 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代表浮点数

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

格式替代符号

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

转义序列

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

在echo中转义换行符包含

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

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

[[email protected] ~]# echo -e "你好\t你好\t"
你好    你好
[[email protected] ~]# echo -e "你好\v你好\v"
你好
    你好

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

打印彩色输出

[[email protected] ~]# echo -e "\033[5;31;42m你好\033[0m" 

参考:http://blog.51cto.com/506554897/1932861

2、算术运算

整数运算

let运算命令

[[email protected] ~]# vi let.sh
#!/bin/bash
num1=2
num2=3
let result=num1+num2
echo $result

运行:
[[email protected] ~]# /bin/bash let.sh 
5
  1. 自加操作 let num1++

  2. 自减操作 let num1--

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

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

    ?

操作符[]运算方法

[[email protected] ~]# vi fangkuohao.sh
#!/bin/bash
num1=2
num2=3
result=$[$num1+num2]
echo $result

运行:
[[email protected] ~]# /bin/bash fangkuohao.sh 
5

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

(())运算方法

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

expr运算方法

[[email protected] ~]# expr 2 + 3         
5
[[email protected] ~]# num1=5
[[email protected] ~]# r=$(expr $num1 + 5)
[[email protected] ~]# echo $num1
5
[[email protected] ~]# echo $r
10

expr的常用运算符

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

精密计算

高级运算工具:bc

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

[[email protected] ~]# echo "1.25*3" | bc
3.75

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

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

[[email protected] ~]# echo "scale=2;7/3" | bc  
2.33

进制转换

十进制转二进制:
[[email protected] ~]# a=192
[[email protected] ~]# echo "obase=2;$a" |bc
11000000

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

计算平方和平方根

求2的三次方:
[[email protected] ~]# echo "2^3"|bc  
8

求100的平方根
[[email protected] ~]# echo "sqrt(100)"|bc
10

3、常用变量

给变量赋值的不同方式

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

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

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

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

用户自定义变量

设置变量的作用范围

格式:

export 变量名

export 变量名=变量值

清除变量名:

unset 变量名

自定义变量
[[email protected] ~]# export a            #自定义变量a
[[email protected] ~]# export b=222        #自定义变量b
[[email protected] ~]# a=111               #给变量a赋值

[[email protected] ~]# echo $a             #打印变量a的值
111
[[email protected] ~]# echo $b             #打印变量b的值
222

清除变量:
[[email protected] ~]# unset a             #清除变量a
[[email protected] ~]# unset b             #清除变量b
[[email protected] ~]# echo $a             #输出为空

[[email protected] ~]# echo $b

环境变量

环境变量配置文件

  • 全局配置文件:/etc/profile

  • 用户配置文件:~/.bash_profile

    ?

查看环境变量:

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

常见的环境变量

  • $USER 查看和用户信息
  • $logname 登录相关信息
  • $UID
  • $Shell
  • $HOME
  • $pwd
  • $PATH 用户输入的命令在哪里目录中查找
  • $PS1
  • $PS2
  • $RANDOM 随机数

位置变量

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

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

  • $1 表示one

  • $2 表示two

    依次类推

预定义变量

  1. $# 命令行中位置参数的个数
  2. $* 所有位置参数的内容
  3. $? 上一条命令执行后返回的状态,为0表示成功,为非0表示执行异常或出错
  4. $$ 当前所在进程的进程号
  5. $! 后台运行的最后一个进程号
  6. $0 当前执行的进程/程序名

以上是关于第一章终端打印算术运算常用变量的主要内容,如果未能解决你的问题,请参考以下文章

Python 基础 常用运算符

计算机组成原理和结构图式(第一章 概论)

第一章(变量,数据类型,运算符)

第一章

获取 badarith,[erlang,'+',[error,0],[],同时使用 Erlang 片段在 TSUNG 中执行算术运算

我如何在HackerRank上的此算术运算符问题中创建预期的输出?