相关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参数…。
阅读全文
0 0
- 相关linux脚本小技巧
- Linux 脚本中的小技巧
- Flash脚本相关技巧
- shell脚本小技巧
- MySQL相关小技巧
- bash 脚本小技巧(1)
- QTP录制脚本小技巧
- Shell脚本调试小技巧
- Socket脚本关联小技巧
- tchar相关的小技巧
- shell相关一些小技巧
- YII--路径相关小技巧
- Android定制相关小技巧
- Linux 小问题&小技巧
- Linux技巧小总结
- Linux技巧小总结
- Linux技巧小总结
- Linux技巧小总结
- 解决Nginx部署ThinkPHP项目的办法
- 双创周|9月20日下午天英汇双创大赛主题沙龙:港澳分赛区智慧产业主题交流会
- 对Servlet执行流程的初步认识
- 排序算法--冒泡排序法
- OpenGL中各个坐标系的转化
- 相关linux脚本小技巧
- day08-js语法和常用类
- Java synchronized 中的 while 和 notifyAll
- for循环打印的练习
- 常用的数组的方法(写给自己)
- 关于WebAssembly的一些介绍和开发
- 第二周项目二C/C++程序的多文件组织
- Mysql-5.7 基于GTID主从复制
- 编辑从字节码和 JVM 的角度解析 Java 核心类 String 的不可变特性