相关linux脚本小技巧

来源:互联网 发布:centos 6.5安装教程 编辑:程序博客网 时间:2024/05/20 06:26

获得字符串长度

可以使用下面的方法获得变量var值的长度
length=${#var}
length即为var值字符串的长度

$ var="hello world"$ echo ${#var}11

识别当前的shell版本

方法1:

$ echo $SHELL/bin/bash

方法2:

$ echo $0-bash

检查脚本是以超级用户还是普通用户身份运行的

环境变量UID指示了当前脚本运行用户的user id,可以使用下面一段脚本检查用户身份:

if [ $UID -ne 0 ]  #root用户的user id 为0then    echo "Not root user. Please run as root.else    echo "Root user"fi

修改Bash命令行提示字符串

当我们在终端进行linux命令行操作时,会看到类似 jie@jix:~$ 这样的命令行提示字符串,实际上这个命令行提示是由环境变量PS1指定的,我们可以通过修改PS1来定制命令行提示字符串。

jie@jix:~$jie@jix:~$ PS1="hello # "hello # lscode  examples.desktop  log.txt  公共的  模板  视频  图片  文档  下载  音乐  桌面

这种改变只是暂时性的,要想永久改变需要将在.bashrc文件中改变PS1的值。

数学运算

let命令

使用let命令可以直接执行基本的算数操作

jie@jix:~$ a=1jie@jix:~$ b=2jie@jix:~$ let c=a+b  jie@jix:~$ let d=a*bjie@jix:~$ let e=a-bjie@jix:~$ let f=a/bjie@jix:~$ let a++jie@jix:~$ let b--jie@jix:~$ echo $a $b $c $d $e $f2 1 3 2 -1 0

操作符[]

jie@jix:~$ a=1jie@jix:~$ b=2jie@jix:~$ c=$[$a+$b]jie@jix:~$ d=$[$a-$b]jie@jix:~$ e=$[$a*$b]jie@jix:~$ f=$[$a/$b]jie@jix:~$ echo $c $d $e $f3 -1 2 0

let命令和操作符[]只能用于整数运算,不支持浮点数,进行浮点数运算需要使用bc命令

bc命令

jie@jix:~$ a=1.1jie@jix:~$ b=2.2jie@jix:~$ c=`echo "$a+$b"|bc`jie@jix:~$ d=`echo "$a-$b"|bc`jie@jix:~$ e=`echo "$a*$b"|bc`jie@jix:~$ f=`echo "$a/$b"|bc`jie@jix:~$ echo $c $d $e $f3.3 -1.1 2.4 0

传入scale可以设定小数精度

jie@jix:~$ g=`echo "scale=2;$a*$b"|bc`jie@jix:~$ echo $g2.42

Shell脚本中$0、$?、$!等符号的意义

$$
Shell本身的PID(ProcessID)
$!
Shell最后运行的后台Process的PID
$?
最后运行的命令的结束代码(返回值)
$-
使用Set命令设定的Flag一览
$*
所有参数列表。如”$*”用「”」括起来的情况、以”$1 $2 … $n”的形式输出所有参数。
$@
所有参数列表。如”$@”用「”」括起来的情况、以”$1” “$2” … “$n” 的形式输出所有参数。
$#
添加到Shell的参数个数
$0
Shell本身的文件名
$1~$n
添加到Shell的各参数值。$1是第1参数、$2是第2参数…。

原创粉丝点击