shell脚本学习笔记

[b]因为工作需要写一个小的shell脚本,很多年前写过,但是后来又把语法全都忘记了,趁这次机会重新学了一遍,找了些资料。先记下来,免的以后又忘记了
1.name="" ;变量的赋值在=两边不能存在空格
2.可以使用的变量 $1 代表第一个参数,同理$2,$3分别代表之后的多个
$#:代表共有多少个参数
bash中提供了一个变量 "$@"代表所有的参数
for thing in "$@";do
echo $thing;
done
总介:

$0 相当于C语言main函数的argv[0]
$1、$2... 这些称为位置参数(Positional Parameter),相当于C语言main函数的argv[1]、argv[2]...
$# 相当于C语言main函数的argc - 1,注意这里的#后面不表示注释
$@ 表示参数列表"$1" "$2" ...,例如可以用在for循环中的in后面。
$? 上一条命令的Exit Status
$$ 当前Shell的进程号

3.if 的使用特别需要主要

if [ $# -gt 4];then

fi;

[b]if 和 [ 之间一定要有空格,[]之内的参数也需要有空格[/b]

4.对于字符串的复制
var1=""
var1="$var1 new"
这个时候得到的就是新的值

5.引号(单引号和双引号)可以防止通配符*的扩展:
若是目录下存在一些jpg格式的图片:aa.jpg , bb.jpg
echo "*.jpg"
echo '*.jpg'
得到的结果就是:
*.jpg
*.jpg

6.其中单引号更严格一些,它可以防止任何变量扩展;而双引号可以防止通配符扩展但允许变量扩展:
echo $SHELL
echo "$shell"
echo '$shell'
得到的结果是;
/bin/sh
/bin/sh
$shell

7.脚本的调试
最简单的调试方法当然是使用echo命令。你可以在任何怀疑出错的地方用echo打印变量值,这也是大部分shell程序员花费80%的时间用于调试的原因。Shell脚本的好处在于无需重新编译,而插入一个echo命令也不需要多少时间。

sh -n your_script
-n
读一遍脚本中的命令但不执行,用于检查脚本中的语法错误,这个命令会返回所有语法错误。

sh -v strangescript
-v
一边执行脚本,一边将执行过的脚本命令打印到标准错误输出
sh -x strangescript
-x
提供跟踪执行信息,将执行的每一条命令和结果依次打印出来


8.不同的运算符
具体可参见附件中的图片,暂时还不知道怎么直接把图片放在文中!好悲剧

[b]
一定要注意 字符串比较用
if [ "$myvar" = "foo bar coo" ]
若是不加“”的话,如果传进来的 参数是 foo bar coo 那么就会变成

if [ foo bar coo = "foo bar coo" ]

就不会进入该分支进行执行了。[/b]

10.函数的使用

vi f2.sh;

#!/bin/bash

fun2 () {

_var1=$1; #这里的$1就是传入的第一个参数,shell脚本中参数都是在函数命令后面介入,不是在括号中传入的风格

echo $_var1;
}

fun2 haha

sh f2.sh
那么输出的结果就是
haha
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值