您的位置:首页 > 运维架构 > Shell

Shell脚本攻略--小试牛刀

2016-12-01 01:18 239 查看
作为用于理解Bash的基本概念及特性的入门章节,这一章讨论了终端打印,数学运算以及其他一些简单的Bash功能。

当启动shell时,它一开始会执行一组命令来定义诸如提示文本,颜色等各类设置。这组命令来自位于用户主目录中的脚本文件~/.bashrc(对于登陆shell则是~/.bash_profile)。Bash还维护了一个历史记录文件~/.bash_history,用于保存用户运行过的命令。

1,echo是一个终端打印命令,每次调用后都有一个换行符。

如果需要打印!,那就不要将其放入双引号中,或者你可以在其之前加上一个特殊的 转义字符(\)将!转义,就像这样: 

$ echo Hello world ! 或者 

$ echo 'Hello world !' 或者 

$ echo "Hello world \!" #将转义字符放在前面 

2,printf也是一个终端打印命令,不过每次调用后没有换行符。可以使用引用文本或由空格分割的参数。我们可以在printf中使用格式化字符串,还可以指 定字符串的宽度、左右对齐方式等。

#!/bin/bash  

#文件名: printf.sh 

printf  "%-5s %-10s %-4s\n" No Name  Mark  

printf  "%-5s %-10s %-4.2f\n" 1 Sarath 80.3456  

printf  "%-5s %-10s %-4.2f\n" 2 James 90.9989  

printf  "%-5s %-10s %-4.2f\n" 3 Jeff 77.564 

我们会得到如下格式化的输出: 

No    Name       Mark 

1     Sarath     80.35 

2     James      91.00 

3     Jeff          77.56

原理:

%s、%c、%d和%f都是格式替换符(format substitution character),其所对应的参数可以置于 带引号的格式字符串之后。 

%-5s指明了一个格式为左对齐且宽度为5的字符串替换(-表示左对齐)。如果不用-指定对 齐方式,字符串就采用右对齐形式。宽度指定了保留给某个变量的字符数。对Name而言,保留 宽度是10。因此,任何Name字段的内容都会被显示在10字符宽的保留区域内,如果内容不足10 个字符,余下的则以空格符填充。 

对于浮点数,可以使用其他参数对小数部分进行舍入。 

对于Mark字段,将其格式化为%-4.2f,其中.2指定保留2个小数位。注意,在每行格式字符 串后都有一个换行符(\n)。 

3,echo同样接收双引号字符串内的转义序列作为参数,如果需要使用转义序列,则采用echo -e “包含转义序列的字符串”  栗子:echo -e "1\t2\t3"

4,对于进程来说,运行时的环境变量可以使用下面的命令来查看:cat /proc/$PID/environ 

5,获取字符串的长度:length=${#var}

6,检查是否为超级用户:

if [ $UID -ne 0 ];then

    echo Non root user.Please run as root

else

    echo Root user

fi

#root用户的UID是0

7,使用shell进行数学运算

let命令可以直接执行基本的算术操作,当使用let时,变量名之前不需要添加$

栗子:let result=no1+no2

自加操作:let no1++

自减操作:let no1--

简写形式:let no1+=6

操作符[ ]的使用方法和let命令类似:

result=$[ no1+no2 ]

在[ ] 中可以使用$前缀,例如:

result=$[ $no1+5 ]

也可以使用(()),但使用(())时,变量名之前需要加上$:

result=$(( no1+5))

以上的方法只用于整数运算,不支持浮点数。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  linux shell 脚本