标签:shell终端打印、算术运算、常用变量 shell预定义变量 shell变量
第一章、终端打印、算术运算、常用变量[root@ceshi ~]# echo hello world
hello world
[root@ceshi ~]# echo ‘hello world‘
hello world
[root@ceshi ~]# echo "hello world"
hello world
[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
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://blog.51cto.com/506554897/1932861
[root@ceshi ~]# vi let.sh
#!/bin/bash
num1=2
num2=3
let result=num1+num2
echo $result
运行:
[root@ceshi ~]# /bin/bash let.sh
5
自加操作 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
[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的常用运算符
它可以执行浮点运算和一些高级函数
[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
双引号"" 允许用过$符号引用其他变量值
单引号‘‘ 禁止引用其他变量值,$视为普通字符
反撇号`` 将命令执行的记过输出给变量;如:
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
全局配置文件:/etc/profile
用户配置文件:~/.bash_profile
?
set 命令可以查看所有的shell变量,其中包括环境变量
表示为:$n (n为1-9之间的数字)
#./test.sh one two three four five six
$0 表示文件名本身
$1 表示one
$2 表示two
依次类推
标签:shell终端打印、算术运算、常用变量 shell预定义变量 shell变量
原文地址:http://blog.51cto.com/506554897/2114403