shell脚本语法总结

本文介绍了Shell脚本的基础知识,包括命令行输出、条件判断、循环控制、文件操作等核心内容,并提供了实用的示例代码。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、命令行输出:echo 要输出变量就用echo $value,其中value是一个变量名

echo -n "hello world"   #不带换行

2、if   else语句           若if语句返回0,则执行then,若返回1,则执行else(与c语言相反)

      if 条件
     then 
        do something
     else
        do something
     fi

或者还有else if

if 条件1
then 
   do something
elif  条件2
then
    do something
fi
3、test、[ ] 、 [[ ]]

test、[ ] 、 [[ ]] 实际上都是shell中的命令,执行之后会返回0(true)或者1(false),而这几个命令与if相结合可以达到我们所需要的许多判断功能,例如测试字符串为空的三种写法:

s=""
if [ -z ${s} ]
then
    echo "empty"
fi

if [[ -z ${s} ]]
then
    echo "empty"
fi

if test -z ${s}
then
    echo "empty"
fi

if后的test、[ ] 、 [[ ]] 都是可以单独执行的,如 
[ -z ${s} ]
<pre name="code" class="java">[[ -z ${s} ]]
test -z ${s}

 

用echo $?可以查看返回码,返回0为true返回1为false

在性能方面:[ ]和test性能基本相同,[[ ]] 性能最高,为前两者的5倍左右,所以建议尽量使用[[ ]]提高脚本性能

4 for循环

for i in {1..100}
do
    echo ${i}
done
5 while、util

i=0
while [[ ${1} -lt 100 ]]
do
    echo ${1}
    ((i++))
done

i=0
until [[ ${i} -ge 100 ]]
do
    echo ${i}
    ((i++))
done

注:while和until的判断原理与if是类似的,它会执行它后面跟着的命令,不同点在于:

while是后面语句返回值为0,则执行循环,否则跳出循环

until是后面语句返回值非0,则执行循环,否则跳出循环

6、获取文件名:${path##*/}

      获取目录名:${path%/*}

      获取后缀名:${path##*.}

7、将命令执行结果存入变量

` `(反单引号,esc下面的那个键)与$()

v1='wc -l test.txt`

v1=$(wc -1 test.txt)

注: ` `和$()都只将命令行标准输出的内容存入变量,如果需要将标准错误内容存入变量,需要用到重定向。

其他参见http://cnbin.github.io/blog/2015/06/23/shell-chang-yong-ming-ling-da-quan/



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值