~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

11月5日:

1.获取字符串长度:

length=${#var}

例如:

$ var=123456789

$ echo ${#var}

  9

2.检查是否为超级用户

 UID 是一个重要的环境变量,可以用于检查当前脚本是以超级用户还是以普通用户的身份运行。例如:

if  [ $UID -ne 0 ]; then

echo Non root user.Please run as root.

else

echo "Root user"

fi

3.修改Bash提示字符串(username@hostname:~$)

当我们打开一个终端或是运行一个shell,都会看到类似于user@hostname:/home/$的提示字符串。不通GNU/LINUX发行版中的提示及颜色略有不同。我们可以利用PS1环境变量来定制提示文本。默认的shell提示文本在文件~/.bashrc中的某一行设置的。

···· 可以使用如下命令列出设置PS1的那一行:

  cat ~/.bashrc | grep PS1 或者

echo $PS1

[\u@\H \W]\$

如果要设置提示字符串,可以输入:

PS1="PROMPT>"

 

4. 通过shell 进行数学运算

在bash shell环境中,可以利用let、(())和[ ] 执行基本的算术操作。而在进行高级操作时,expr和bc这两个工具也非常有用。

  #! /bin/bash

no1=4

no2=5

let result=no1+no2

echo $result

自增操作:

let  no1++

自减操作:

 let no1--

简写形式:

let no1+=6

let no1-=6

分别等同于: let no=no+6 和 let no =no-6

 其他方法:

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

result=$[ no1+no2 ]

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

result=$[ $no1 + 5 ]

也可以时候用(()):

result =$ (( no1 +50 ))

expr 同样可以用于基本算术操作:

result =`expr 3+4`

result=$(expr $no1 +5)

以上这些方法只能用于证书运算,而不支持浮点数。

bc是一个用于数学运算的高级工具,这个精密计算器包含了大量的选项。我们可以借助它执行浮点数运算并应用一些高级函数:

echo “ 4 * 0.56” | bc

2.24

 

no=54;

result=`echo "$no * 1.5"` |bc `

echo $result

81.0

其他参数可以置于要执行的具体操作之前,同时以分号作为定界符,通过stdin传递给bc。

设定小数精度(数值范围):在下面的例子中,参数scale=2将小数位个数设置为2.因此,bc将会输出包含两个小数位的数值。

echo “scale=2;3/8” |bc

0.37

进制转换:用bc可以将一种进制系统转换为另一种。来看看如何将十进制转换为二进制,然后再将二进制转换为十进制:

#!/bin/bash

no=100

echo "obase=2;$no" |bc

1100100

no=1100100

echo "obase =10;ibase=2;$no"|bc

100

计算算术平方及平方根:

echo “sqrt(100)‘ | bc

echo "10^10" | bc

 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

11月6日:

1.   0-------标准输入  1----------标准输出    2-----------标准错误

   将标准错误stderr转换成stdout,是的stderr和stdout都重定向到同一个文件中:

   cmd 2>&1 output.txt

   cmd &> output.txt