一起来学习shell吧。

shell环境使得用户能与操作系统的内核进行交互操作,shell脚本就是一些文件,我们将一系列需要执行的命令写入其中,通过使用某种基于解释器的编程语言,然后通过shell执行这些脚本。

在接下来的学习历程中,我使用的都是Bash,它是目前大多数Linux系统默认的shell环境。

1.shell脚本通常是以#!起始的文本文件,例如:
#!/bin/bash
/bin/bash 是bash解释器的路径,#!/bin/bash 意思就是使用bash作为shell脚本的解释器。

2.运行脚本的两种方式:

  • 将脚本作为命令行参数
  • 使脚本具有可执行权限

先举例第一种,新建firstScript.bash脚本,在文本中输入 echo Hello My First Script! 然后切换到脚本所在的根目录,终端执行:
bash firstScript.bash
终端输出 Hello My First Script!
可以看到脚本已经运行起来,并且按照我们的意愿输出了Hello My First Script!这句话。

但是,如果使用命令行参数的方法运行脚本,那么 #! 也就没有存在的意义了,为了让脚本能够独立运行,我们需要赋予脚本可执行权限,并且在脚本中使用#!来指定运行脚本所需的解释器。

打开我们的脚本文件,在首行输入#!/bin/bash
然后切换到脚本的根目录,终端执行:
chmod a+x firstScript.bash
该命令赋予了所有用户firstScript的可执行权限,使得脚本能以下面的方式运行:
./firstScript.bash (./表示当前目录)
或者使用脚本的完整路径运行脚本:
/Users/bombuu/valie/firstScript.bash

3.终端打印:
终端作为交互式工具,用户可以通过它与shell环境进行交互,在终端中打印文本是绝大多数shell脚本需要进行的基本工作,能够执行打印的方法有:

  • 使用echo基本命令
  • 使用printf命令

默认情况下,echo在每次调用后都会添加一个换行符,而printf并不会自动添加换行符。

4.变量
脚本语言通常不需要在使用变量之前声明其类型,直接赋值即可。在Bash中变量的值都是字符串,在给变量赋值时不论有没有使用引号,值都会以字符串的形式存储。

  • 变量赋值:
    var=value
    var是变量名,value是值
    注意:var = value不同于var=value,前者是相等操作,后者才是赋值操作。

  • 打印变量的值:
    echo $var
    在变量名前加上$前缀就可以打印出变量的内容。

  • 获取字符串长度
    ${#var}

  • 获取当前使用的shell类型
    echo $SHELL

5.使用shell进行数学运算

  • let命令可以直接执行基本的算数操作(变量名前不需要加$前缀)
num1=1;
num2=2;
let sum=num1+num2;

自加操作:let num1++
自减操作:let num1--

  • [ ] 操作符使用和let类似
    sum=$[ num1 + num2 ]
    在[ ]中也可以使用[ $num1 + 10 ]`

  • 使用( ( ) ) 进行操作时,变量名前需要加上(( num1 + num2 ))`

  • expr也可以用于基本算数操作:

sum=`expr 5 + 10`
sum=$(expr $num1 + 10)

以上方法只适用于整型,不支持浮点型!

6.使用bc进行数学运算的高级操作
echo "4 * 0.25" => 1.00

  • 设定小数精度:
    echo "scale=2;10/3" | bc
    scale=2即保留两位小数,同时以分号作为定界符,将scale参数置于要执行的操作之前。
  • 进制转换
num=3
echo "obase=2;$num" | bc

以上是将十进制转换成二进制。

  • 计算平方根以及次方
echo "sqrt(100)" | bc
echo "10^3" | bc

你可能感兴趣的:(一起来学习shell吧。)