shell使用技巧

1)将执行命令赋值给某个变量

可以使用$( )或者` `实现,例如: 

a=$(echo "123")
echo $a
123
a=`echo "123"`
echo $a

123

2) 大小写转换

以下是大写转小写,反过来是大写转小写

tr命令:

val=`echo "ABCdefg"| tr '[:upper:]' '[:lower:]'`

echo $val
输出: abcdefg

3) 查看命令执行返回值

$? 执行正常为0,错误为非0

例如:

./exec_a_cmd

if [ $? != 0 ]
then
    echo "Failed" 
    exit
fi

4) sleep睡眠

sleep 1    睡眠1秒
sleep 1s    睡眠1秒
sleep 1m   睡眠1分
sleep 1h   睡眠1小时 

sleep 1d   睡眠1天 


5)  expr加减乘除

bash-3.00$ s=5
bash-3.00$ echo $s
5
bash-3.00$ s=`expr $s + 3`
bash-3.00$ echo $s
8

6) 获取函数返回值

i.函数默认是将标准输出传递出来,不是返回值。
所以如果直接调用functionname,实际上是将输出传递回来
例如:
a=`functionname`
将函数functionname的标准输出传递给a
 
ii.调用函数不需要加(),直接写函数名就可以
functionname
 
iii.使用$?接收上一程序的返回值状态,也就是return的值
functionname
echo $?
这里输出的是函数的返回值

7) if语句中报错 [: too many arguments

在判断语句中如果遇到变量字符串太长,就会遇到这种提示,把变量加上双引号即可,例如"$a"。

8) echo换行符丢失问题

比如文件file01中含有三行文字:

text1
text2

text3

执行cat file01|wc -l 查看行数结果是3,如果赋值给一个变量再通过echo查看,发现换行符没有了,解决方法是当echo多行变量时,加引号,例如下面的"$a" 

$ a=`cat file01`

$ echo $a|wc -l
       1
$ echo $a
text1 text2 text3
$ echo "$a"
text1
text2
text3



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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值