系统相关
首页 > 系统相关> > 和Vamei大佬学shell

和Vamei大佬学shell

作者:互联网

shell就是运行在终端中的文本互动程序,常见的shell有sh,bash等,bash是sh的改进版本,一般来说,目前都推荐bash作为默认的shell。

#!/bin/bash    #指定bash程序的路径

值得注意的是shell对空格敏感,当参数中包含了空格的时候,需要用引号把参数包裹起来,赋值的时候,“=”前后也不要留空格,有空格的时候要加引号;

$var=World
$var='abc bcd'  #单引号,双引号均可
$echo "Hello $var"  #var会被正常替换
$echo 'Hello $var'  #var不会被正常替换

可以直接把一个命令输出的文本直接赋予给一个变量

$now=`date`  

还可以把一个变量中的数据赋值给另外一个变量

$another=$var

还可以在一段文本中嵌入变量

$var=World
$echo Hello$var
$echo ${var}IsGood

bash中有变量,但是变量只能存储文本

$result=1+2
$echo $result   #不会进行计算

$echo $((2 + (5*2)))  #会进行计算

$var=1
$echo $(($var + (5*2)))  #会进行计算

常见的一些变量

$?   # 上一个语句的返回码

rm demo.file && echo "rm succeed"
rm demo.file || echo "rm fail"

函数

#!/bin/bash

function my_info (){              # 关键字function和花括号都提示了该部分是函数定义。function关键字并不是必须的
lscpu >> log 
uname –a >> log
free –h >> log
}

my_info                           # 调用的时候只需要函数名

函数调用

my_info.sh

#!/bin/bash

function my_info (){
lscpu >> $1
uname –a >> $1
free –h >> $1
}

app.bash
#!/bin/bash source my_info.bash my_info output.file # 可以使用my_info.sh中的函数

test 命令做逻辑判断

test 3 -lt 2; echo $?

通配符

* 任意文本 *) Xyz, 123, …
? 任意一个字符 a?c) abc, axc, …
[] 范围内一个字符 [1-5][b-d]) 2b, 3d, …

  

ref:https://www.cnblogs.com/vamei/p/8151169.html

标签:info,shell,echo,Vamei,var,大佬,my,bash
来源: https://www.cnblogs.com/xiaoxiaomajinjiebiji/p/14281184.html