千家信息网

什么是shell脚本编程?

发表于:2025-01-20 作者:千家信息网编辑
千家信息网最后更新 2025年01月20日,什么是Shell脚本示例:#!/bin/shcd~mkdirshell_tutcdshell_tutfor((i=0;i<10;i++));dotouchtest_$i.txtdone示例解释第1行:
千家信息网最后更新 2025年01月20日什么是shell脚本编程?

什么是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在这名话中的方位.

原文链接:http://www.magedu.com/71404.html


变量 引号 脚本 字符 编程 字符串 解释 括号 解释器 目录 程序 输出 界面 系统 循环 操作系统 代码 应用程序 时候 概念 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 杭州临安区直销软件开发 电视户户通服务器的数据接受超时 穿越火线进不了战队服务器 惠州网络技术推广 单片机用哪个开发软件开发 为什么用友软件需要服务器 软件开发实训系统官方最新版 nodejs云服务器 广联达云授权状态访问服务器异常 海康ve22s服务器运维中心 计算机网络技术与应用三次握手 关于儿童网络安全的简笔画 网络安全周宣传活动资料 局域网必须用服务器吗 数据库x锁是几级 云服务器是阿里好还是华为好 网易怀旧服服务器多大 文明网络安全作文400 数据库含课程设计随堂作业 ci 数据库返回 一个程序的数据库在哪儿 贵州it软件开发公司 江苏现代软件开发进货价 一体化的网络技术 举办晚会宣传网络安全 教师管理系统数据库实训 为什么选择路由器网络安全 电脑端推流软件开发 对计算机网络技术有什么了解 数据库管理系统包括那两部分
0