shell脚本编写教程

本文是一篇关于Shell脚本的基础教程,介绍了如何创建和运行简单的Shell脚本,包括在终端中打印信息、接收参数以及条件判断的使用。通过实例展示了如何在脚本中使用$0, $1等变量来处理参数,还探讨了单引号、双引号和反引号的用法。" 21912,3964,C#在AutoCAD二次开发中的应用实践,"['C#开发', 'AutoCAD接口', '图形API', '类库应用', 'VBA集成']

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

如何写一个简单的shell脚本

最近是实习的时候一直在linux服务器里搬砖,总是敲一些重复的命令,让我有些烦躁,能用代码解决的事情就不要敲键盘,本小辣鸡决定学习下shell脚本怎么使用。
首先,我们先创建一个shell脚本,记得创建玩之后给它修改一下权限,不然不能执行有个p用

$ vim nb.sh
$ sudo chmod 777 nb.sh

创建完之后,我们开始向里面写入内容了,先不管网上说的,我个人理解,shell脚本就是将一些终端里可以执行的命令放到一个文件了,省得敲这么多字,简直懒人必备啊。接下来,我来介绍一下常用的一些辅助命令,和编写语法(因为我自己在边学习边写,所以可能会不全,我会慢慢补全的)

1. 在终端中打印

本辣鸡以前从来没有在终端中打印过东西,刚写脚本时,里面好几个命令,我向每执行完一个命令输出一句话。

#nb.sh文件里面
#!/bin/bash
echo "I am nb"

就这么简单

2. 传参

写脚本不传参数叫什么写脚本

$ ./nb.sh arg1 arg2 arg3 (.......more arg)

一般这些arg都是参数,我们可以通过这些arg,来对脚本里面代码进行控制,脚本里$0 表示"./nb.sh"这个命令,$1表示arg1,2表示arg2,以此类推。如果脚本前面加了sudo仍然不变,2表示arg2,以此类推。如果脚本前面加了sudo 仍然不变,2arg2sudo不会认sudo的。现在举个栗子,写个显示所有参数的脚本

#nb.sh文件里面
#!/bin/bash
for args in $@
do
    echo $args
done

这个代码就可以打印出所有的参数了。

###3. 条件语句和判断
能调用参数之后,肯定少不了条件语句和判断,shell脚本这个还是很恶心的。

  • if elseif else
    这个条件判断
if command
    then
    command
elif command
    then
    command
else
    command
fi

如果我们需要在条件里面写入判断,这里就比较奇怪,网上的代码有些无法复现,会报错command not found
我写出我电脑中实现的方法

#!/bin/bash
if [ $1 -eq 1 ]
    then
    echo "nb 1"
elif [ $1 -eq 0 ]
    then
    echo "nb 0"
else
    echo "nb must input"
fi

相等必须得使用-eq, 而且if后面的方框前后必须有一个空格,像网上的==、>=、<=都用不了。下面总结一下判断符号。

符号含义
-eq等于
-ne不等于
-gt大于
-lt小于
-ge大于等于
-le小于等于

3 单引号双引号和反引号

shell 脚本中引号分为三种,单引号、双引号和反引号。

  • 单引号
    单引号括起来的字符只会作为普通字符出现,特殊字符用单引号括起来也会失去其原有的意义
  • 双引号
    双引号括起来的字符,除$ \ ’ “属于特殊字符并保持其特殊功能之外,其余字符仍作为普通字符对待。
  • 反引号
    反引号括起来的字符串会被解释成命令行,执行时shell首先执行该命令行,然后以它的标准输出结果取代整个反引号部分。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值