和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