shell脚本笔记(一)

变量

定义一个变量:a=123(等号前后不能有空格)
变量取值:$var 或者 ${var}
第二种表示有必要吗?
num=2
echo $numnd # 错误
echo ${num}nd # 正确 


注意区别:$(cmd)等同于`cmd`,脚本会执行cmd并将结果替换整个表达式(包括cmd外面)

环境变量
如 PATH
export PATH=/usr/local/sbin:$PATH

参数

脚本可以看做是命令的集合,一个“大”命令

  • $0 本命令的名称(全路径)
  • $$ 本命令的pid
  • $? 上一个命令退出时的返回值
  • $! 上一个命令的pid
  • $# 参数个数
  • $3 第3个参数

所有参数
$* 等价于 "$1 $2 ... "
$@ 等价于 "S1" "S2" ...

复合语句(命令)

用;分割
用换行符也可以分割命令,所以分号就可以省略了

控制语句

test expression 等价于 [ expression ](中括号和表达式间的空格不能省略)
返回true/false

分支

if false; then echo yes; else echo no; fi
if false;then echo yes;else echo no;fi (分号后空格可有可无)
if false;then echo yes;else echo no;echo no;fi(多加一条命令也是可以的)
if [ true ];then echo yes;fi(试着换上[ expression ])
if ...;then ...;elif ...;then ...;else ...;if (完整的if语句)

循环

while ...; do ...; done

for x in 1 2 3; do echo x is $x; done

关于引号

单引号('):任何东西括起来都是普通字符
双引号("):只有 $ \ ' " ` 五个字符有特殊功能
反引号(`):里面的是命令,结果替换整个`...`,包括`(前面说过了)

&&

左边如果是真,则继续执行右边

管道

| 左边输出作为右面输入
> 覆盖旧文件
>> 尾部追加

通配符

*

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值