阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

什么是shell脚本编程?

324次阅读
没有评论

共计 1830 个字符,预计需要花费 5 分钟才能阅读完成。

什么是 Shell 脚本

示例:

#!/bin/sh

cd~

mkdirshell_tut

cdshell_tut

for((i=0;i<10;i++));do

touchtest_$i.txt

done

示例解释

第 1 行:指定脚本解释器,这里是用 /bin/sh 做解释器的

第 2 行:切换到当前用户的 home 目录

第 3 行:创建一个目录 shell_tut

第 4 行:切换到 shell_tut 目录

第 5 行:循环条件,一共循环 10 次

第 6 行:创建一个 test_1…10.txt 文件

第 7 行:循环体结束

cd,mkdir,touch 都是系统自带的程序,一般在 /bin 或者 /usr/bin 目录下。for,do,done 是 sh 脚本语言的关键字。

shell 和 shell 脚本的概念

shell 是指一种应用程序,这个应用程序供给了一个界面,用户经过这个界面拜访操作系统内核的效劳。KenThompson 的 sh 是第一种 UnixShell,WindowsExplorer 是一个典型的图形界面 Shell。

shell 脚本(shell

script),是一种为 shell 编写的脚本程序。业界所说的 shell 通常都是指 shell 脚本,但读者朋友要知道,shell 和 shell

script 是两个不同的概念。由于习惯的原因,简洁起见,本文出现的“shell 编程”都是指 shell 脚本编程,不是指开发 shell 自身(如

WindowsExplorer 扩展开发)。

环境

shell 编程跟 java、php 编程一样,只要有一个能编写代码的文本编辑器和一个能解释执行的脚本解释器就可以了。

OS

当前主流的操作系统都支持 shell 编程,本文档所述的 shell 编程是指 Linux 下的 shell,讲的基本都是 POSIX 标准下的功能,所以,也适用于 Unix 及 BSD(如 MacOS)。

定义变量

定义变量时,变量名不加美元符号($),如:

your_name=”qinjx”

注意,变量名和等号之间不能有空格,这可能和你熟悉的所有编程语言都不一样。

除了显式地直接赋值,还可以用语句给变量赋值,如:

forfilein`ls/etc`

使用变量

使用一个定义过的变量,只要在变量名前面加美元符号即可,如:

your_name=”qinjx”

echo$your_name

echo${your_name}

变量名外面的花括号是可选的,加不加都行,加花括号是为了帮助解释器识别变量的边界,比如下面这种情况:

forskillinAdaCoffeActionJavado

echo”Iamgoodat${skill}Script”

done

如果不给 skill 变量加花括号,写成 echo”Iamgoodat$skillScript”,解释器就会把 $skillScript 当成一个变量(其值为空),代码执行结果就不是我们期望的样子了。

推荐给所有变量加上花括号,这是个好的编程习惯。IntelliJIDEA 编写 shellscript 时,IDE 就会提示加花括号。

重定义变量

已定义的变量,可以被重新定义,如:

your_name=”qinjx”

echo$your_name

your_name=”alibaba”

echo$your_name

这样写是合法的,但注意,第二次赋值的时候不能写 $your_name=”alibaba”,使用变量的时候才加美元符。

单引号

str=’thisisastring’

单引号字符串的限制:

单引号里的任何字符都会原样输出,单引号字符串中的变量是无效的

单引号字串中不能出现单引号(对单引号使用转义符后也不行)

双引号

your_name=’qinjx’

str=”Hello,Iknowyourare\”$your_name\”!\n”

双引号里可以有变量

双引号里可以出现转义字符

字符串操作

拼接字符串

your_name=”qinjx”

greeting=”hello,”$your_name”!”

greeting_1=”hello,${your_name}!”

echo$greeting$greeting_1

获取字符串长度:

string=”abcd”

echo${#string}# 输出:4

提取子字符串

string=”alibabaisagreatcompany”

echo${string:1:4}# 输出:liba

查找子字符串

string=”alibabaisagreatcompany”

echo`exprindex”$string”is`# 输出:8,这个句子的意思是:找出单词 is 在这名话中的方位.

正文完
星哥玩云-微信公众号
post-qrcode
 0
星锅
版权声明:本站原创文章,由 星锅 于2022-12-03发表,共计1830字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中

星哥玩云

星哥玩云
星哥玩云
分享互联网知识
用户数
4
文章数
19348
评论数
4
阅读量
7803058
文章搜索
热门文章
开发者必备神器:阿里云 Qoder CLI 全面解析与上手指南

开发者必备神器:阿里云 Qoder CLI 全面解析与上手指南

开发者必备神器:阿里云 Qoder CLI 全面解析与上手指南 大家好,我是星哥。之前介绍了腾讯云的 Code...
星哥带你玩飞牛NAS-6:抖音视频同步工具,视频下载自动下载保存

星哥带你玩飞牛NAS-6:抖音视频同步工具,视频下载自动下载保存

星哥带你玩飞牛 NAS-6:抖音视频同步工具,视频下载自动下载保存 前言 各位玩 NAS 的朋友好,我是星哥!...
云服务器部署服务器面板1Panel:小白轻松构建Web服务与面板加固指南

云服务器部署服务器面板1Panel:小白轻松构建Web服务与面板加固指南

云服务器部署服务器面板 1Panel:小白轻松构建 Web 服务与面板加固指南 哈喽,我是星哥,经常有人问我不...
我把用了20年的360安全卫士卸载了

我把用了20年的360安全卫士卸载了

我把用了 20 年的 360 安全卫士卸载了 是的,正如标题你看到的。 原因 偷摸安装自家的软件 莫名其妙安装...
星哥带你玩飞牛NAS-3:安装飞牛NAS后的很有必要的操作

星哥带你玩飞牛NAS-3:安装飞牛NAS后的很有必要的操作

星哥带你玩飞牛 NAS-3:安装飞牛 NAS 后的很有必要的操作 前言 如果你已经有了飞牛 NAS 系统,之前...
阿里云CDN
阿里云CDN-提高用户访问的响应速度和成功率
随机文章
星哥带你玩飞牛NAS硬件 01:捡垃圾的最爱双盘,暴风二期矿渣为何成不老神话?

星哥带你玩飞牛NAS硬件 01:捡垃圾的最爱双盘,暴风二期矿渣为何成不老神话?

星哥带你玩飞牛 NAS 硬件 01:捡垃圾的最爱双盘,暴风二期矿渣为何成不老神话? 前言 在选择 NAS 用预...
浏览器自动化工具!开源 AI 浏览器助手让你效率翻倍

浏览器自动化工具!开源 AI 浏览器助手让你效率翻倍

浏览器自动化工具!开源 AI 浏览器助手让你效率翻倍 前言 在 AI 自动化快速发展的当下,浏览器早已不再只是...
恶意团伙利用 PHP-FPM 未授权访问漏洞发起大规模攻击

恶意团伙利用 PHP-FPM 未授权访问漏洞发起大规模攻击

恶意团伙利用 PHP-FPM 未授权访问漏洞发起大规模攻击 PHP-FPM(FastCGl Process M...
2025年11月28日-Cloudflare史诗级事故:一次配置失误,引爆全球宕机

2025年11月28日-Cloudflare史诗级事故:一次配置失误,引爆全球宕机

2025 年 11 月 28 日 -Cloudflare 史诗级事故: 一次配置失误,引爆全球宕机 前言 继今...
颠覆 AI 开发效率!开源工具一站式管控 30+大模型ApiKey,秘钥付费+负载均衡全搞定

颠覆 AI 开发效率!开源工具一站式管控 30+大模型ApiKey,秘钥付费+负载均衡全搞定

  颠覆 AI 开发效率!开源工具一站式管控 30+ 大模型 ApiKey,秘钥付费 + 负载均衡全...

免费图片视频管理工具让灵感库告别混乱

一言一句话
-「
手气不错
4盘位、4K输出、J3455、遥控,NAS硬件入门性价比之王

4盘位、4K输出、J3455、遥控,NAS硬件入门性价比之王

  4 盘位、4K 输出、J3455、遥控,NAS 硬件入门性价比之王 开篇 在 NAS 市场中,威...
星哥带你玩飞牛NAS硬件 01:捡垃圾的最爱双盘,暴风二期矿渣为何成不老神话?

星哥带你玩飞牛NAS硬件 01:捡垃圾的最爱双盘,暴风二期矿渣为何成不老神话?

星哥带你玩飞牛 NAS 硬件 01:捡垃圾的最爱双盘,暴风二期矿渣为何成不老神话? 前言 在选择 NAS 用预...
开发者福利:免费 .frii.site 子域名,一分钟申请即用

开发者福利:免费 .frii.site 子域名,一分钟申请即用

  开发者福利:免费 .frii.site 子域名,一分钟申请即用 前言 在学习 Web 开发、部署...
自己手撸一个AI智能体—跟创业大佬对话

自己手撸一个AI智能体—跟创业大佬对话

自己手撸一个 AI 智能体 — 跟创业大佬对话 前言 智能体(Agent)已经成为创业者和技术人绕...
让微信公众号成为 AI 智能体:从内容沉淀到智能问答的一次升级

让微信公众号成为 AI 智能体:从内容沉淀到智能问答的一次升级

让微信公众号成为 AI 智能体:从内容沉淀到智能问答的一次升级 大家好,我是星哥,之前写了一篇文章 自己手撸一...