首页 > 代码库 > Linux shell 脚本
Linux shell 脚本
#!/bin/bash
shebang 是一个文本行,其中#!位于解释器路径之前,/bin/bash是Bash的解释器命令路径。
有两种运行脚本的方式,一种是将脚本作为Bash的命令行参数,另外一种是授予脚本执行权限,将其变为可执行文件。
对脚本设置可执行权限:
$bash script.sh#文件名称 $chmod 777 script.sh#给文件赋予读写可执行权限
$./script.sh#./表示当前目录
- 使用shell进行数学运算
let命令可以直接进行数学运算,变量名之前不需要添加$
#!/bin/bash num1=5 num2=6 let result=num1+num2 echo $result
自加操作
let num1++
自减操作
let num1--
缩写形式
let num1+=5
let num1-=5
分别等同于
num1=num1+5
num1=num1-5
其他方法
操作符[]、expr也可以实现类似let
result=$[num1+num2]
result=$[$num1+5]
expr运算操作和字符串 http://www.cnblogs.com/kex1n/p/6605376.html
例1: #!/bin/bash num1=5 num2=6 result1=$(expr $num1+$num2) resulr2=$(expr $num1 + $num2) echo $result1 echo $result2
输出:result1的结果是5+6
result2的结果是11
为什么会这样呢?
运算符左右都有空格 ,如果没有空格表示是字符串连接
以上这些运算只能是整数运算,不支持浮点型
2.bc可以借助他用来执行浮点型运算
echo “4 * 5.5” | bc
#!/bin/bash num1=4 num2=5 result=`echo "$num1 * $num2" | bc` echo $result
设定小数精确位数 echo “scale=2;3 / 8” | bc 进制转换 num=100 echo “obase=2;$num” | bc 平方根 echo “sqrt(100) | bc”
3.输出文本重定向或者将文本保存到另外一个文件中去
例1
echo “my frist progress” >text.ext
例2 echo “my frist progress” >>text.ext
例1:是将text.ext文件中的内容先清空,然后写入my frist progress
例2:是在text.ext文件内容末尾继续写入my frist progress
4.数组和关联数组
当行数组 array_var=(0 1 2 3 4 5 6)
把数组值定义成一组“索引-值”
array_var[0]=“text1”
array_var[1]=“text2”
array_var[2]=“text3”
array_var[3]=“text4”
array_var[4]=“text5”
array_var[5]=“text6”
打印特定数组值
echo ${array_var[1]}#打印某一个数组
num=5
echo ${array_var[num]}#打印某一个数组
echo ${array_var[*]}#打印所有数组
echo ${#array_var[*]}#打印数组长度
关联数组声明 首先需要把一个变量声明成关联数组 declare -A ass_array ass_array={[apple]=‘10‘ [banana]=‘20‘} echo “Apple costs is ${ass_array[apple]}”
echo {!ass_array[*]} 输出:Apple costs is 10
banana apple
Linux shell 脚本
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。