zoukankan      html  css  js  c++  java
  • Linux shell 脚本

    #!/bin/bash

    shebang 是一个文本行,其中#!位于解释器路径之前,/bin/bash是Bash的解释器命令路径。

    有两种运行脚本的方式,一种是将脚本作为Bash的命令行参数,另外一种是授予脚本执行权限,将其变为可执行文件。

    对脚本设置可执行权限:

    $bash script.sh#文件名称
    $chmod 777 script.sh#给文件赋予读写可执行权限
    $./script.sh#./表示当前目录

    1. 使用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=23 / 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
  • 相关阅读:
    训练集、验证集和测试集的区别
    视频分类论文“Towards Good Practices for Very Deep Two-Stream ConvNets”程序运行过程
    201571030304/201571030311《小学四则运算练习软件软件需求说明》结对项目报告
    201571030304/201571030311《小学四则运算练习软件》结对项目报告
    实验二 软件工程个人项目
    实验一 软件工程准备
    MySQL的卸载与安装
    大宗商品
    Web_Servlet四大域对象
    Web_Servlet之间请求转发
  • 原文地址:https://www.cnblogs.com/Daisyjm/p/7296110.html
Copyright © 2011-2022 走看看