shell编程 笔记2 --基本语法

1.基础语法

下面是几个杂乱的例子(我尽可能让它包含更多的语法)

  • 使用变量
#!/bin/bash
echo -n "The time and date are": `date` #-n:不换行,引号可以不加,``之间视为命令
echo "User info for userid: $USER"    #出现美元符会被认为在引用一个变量,加\可避免
echo UID: ${UID}            #变量两侧允许用花括号
var1="this is a variable"   #变量名区分大小写,长度不超过20
var2=$var1          #引用需要用美元符,赋值不需要,等号和值之间不能出现空格
echo $(echo $var2)  #命令除了``标识,也可以用$()

today=$(date +%y%m%d)
ls /usr/bin -al > log.$today

  • 输入/出重定向
#!/bin/bash
file=log.$(date +%y%m%d)
date > $file    #有内容会被覆盖
date >> $file   #往文件追加
echo endofthfile >> $file
wc < $file      #输入重定向,行数 词数 字节数


#内联输入重定,指定一个文本标记来划分输入数据的开始和结尾,数据的开始和结尾文本标记必须一致
wc << endofthfile
`cat $file`
endofthfile

  • 管道
ls -al|more		#不会比重定向显得笨拙

  • 数学表达式
#!/bin/bash
echo $(expr 2 \* 2)     #expr命令可以处理表达式,但显得笨拙
echo $[2 * 2]           #用方括号方便得多,但也只支持整数运算

#一种浮点解决方案,bash计算器bc
var1=$(echo "scale=4; 3.44 / 5" | bc)
echo The answer is $var1

variable=$(bc << EOF
var=3.1415
var2=var * var
print var2
EOF
)
echo $variable      #前面那句print不会有输出

  • 退出状态码
#!/bin/bash
source ./math.sh
echo $?     #获取上一个文件的退出状态码
exit 255    #返回退出状态码,0~255的区间
状态码描述
0命令成功结束
1一般性未知错误
2不适合的shell命令
126命令不可执行
127没找到命令
128无效的退出参数
128+x与Linux信号x相关的严重错误
130通过Ctrl+C终止的命令
255正常范围之外的退出状态码
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值