一, 环境
系统: Centos6.6 x64
- shell:bash,sh
- [centos@Shell ~]$ hostname
- Shell
- [centos@Shell ~]$ lsb_release -a
- LSB Version: :base-4.0-amd64:base-4.0-noarch:core-4.0-amd64:core-4.0-noarch:graphics-4.0-amd64:graphics-4.0-noarch:printing-4.0-amd64:printing-4.0-noarch
- Distributor ID: CentOS
- Description: CentOS release 6.6 (Final)
- Release: 6.6
- Codename: Final
- [centos@Shell ~]$ echo $SHELL
- /bin/bash
- [centos@Shell ~]$ ifconfig eth0 |grep "t addr"| awk -F '[: ]+' '{print $4}'
- 192.168.101.110
二, 脚本示例
1, 终端打印
- #!/bin/bash
- #The printf of Linux termnal,Include "echo,printf"
- #author by woon
- echo "The shell\`s name is $0"
- #examples of echo,printf
- # 默认打印. 输出换行
- echo "Hello World!"
- echo 'Hello World!'
- #echo -n 参数接受不换行输出
- echo -n "Hello World"
- echo "Hello World"
- #-e 参数接受双引号内字符串的转移列表
- echo "Hello\tWorld!"
- echo -e "Hello\tWorld!"
- #printf 使用文本或由空格分割的参数, 可指定输出的宽度, 对其方式等, 可以格式化输出, 默认情况下, printf 不输出换行
- printf "%-5s %-10s %-4s\n" No. NAME Mark
- printf "%-5s %-10s %-4s\n" 1 Lee 80
- printf "%-5s %-10s %-4.2f\n" 2 Woon 90.456
- printf "%-5s %-10s %-4.2f\n" 3 James 85.654321
- printf "%-5s %-10s %-5.3f\n" 4 Jeff 85.123789
运行结果:
- The shell`s name is shell_print.sh
- Hello World!
- Hello World!
- Hello WorldHello World
- Hello World!
- -e Hello World!
- No. NAME Mark
- 1 Lee 80
- 2 Woon 90.46
- 3 James 85.65
- 4 Jeff 85.124
2, 环境变量
- #!/bin/bash
- #author by woon
- #env# 获取全局环境变量
- env> /tmp/env_$(date +%Y%m%d).$$
- head -n 10 /tmp/env_$(date +%Y%m%d).$$
- echo "^^^^^^^^^^^^^^^^^ 分隔符 ^^^^^^^^^^^^^^^^^^^^^^"
- # 获取单个全局变量的值
- echo $PATH
- echo "^^^^^^^^^^^^^^^^^ 分隔符 ^^^^^^^^^^^^^^^^^^^^^^"
- # 自定义变量和自定义全局变量, 删除环境变量
- var="Hello World"
- echo -n "$var"
- echo -n $var
- echo ${var}
- # 设置全局环境变量
- export VAR
- # 获取当前的 shell 版本
- echo $SHELL
- #or
- echo $0
- # 获取变量的长度
- var="Hello World"
- echo ${#var}
- # 变量内容的删除
- path=$PATH
- echo $path
- echo "最短删除, 非贪婪模式, 由前向后删除"
- var1=${path#/*:}
- echo $var1
- echo "贪婪模式, 删除匹配到最长的, 由前向后删除"
- var2=${path##/*:}
- echo $var2
- echo "非贪婪模式 %, 由后向前删除"
- var3=${path%:*bin}
- echo $var3
- echo "贪婪模式, 由后向前删除最长的"
- var4=${path%%:*bin}
- echo $var4
3,shell 数学运算
- #!/bin/bash
- #author by woon.
- # 数学运算
- sum_jia=0
- sum_cheng=1
- i=1
- while [ $i -le 10 ];
- do
- let "sum_jia+=i"
- let "sum_cheng*=i"
- let "i += 2"
- done
- sum_jian1=$[ sum_cheng - sum_jia]
- sum_jian2=$(( sum_cheng - sum_jia ))
- echo $sum_jia
- echo $sum_cheng
- echo $sum_jian1
- echo $sum_jian2
运行结果
- $ ./shell_num.sh
- 25
- 945
- 920
- 920
来源: http://www.bubuko.com/infodetail-2689313.html