- 浏览: 494378 次
- 性别:
- 来自: 广州
文章分类
- 全部博客 (502)
- Java (70)
- Linux (10)
- 数据库 (38)
- 网络 (10)
- WEB (13)
- JSP (4)
- 互联网 (71)
- JavaScript (30)
- Spring MVC (19)
- HTML (13)
- CSS (3)
- AngularJS (18)
- Redis (5)
- Bootstrap CSS (1)
- ZooKeeper (4)
- kafka (6)
- 服务器缓存 (4)
- Storm (1)
- MongoDB (9)
- Spring boot (16)
- log4j (2)
- maven (3)
- nginx (5)
- Tomcat (2)
- Eclipse (4)
- Swagger (2)
- Netty (5)
- Dubbo (1)
- Docker (7)
- Hadoop (12)
- OAuth (1)
- webSocket (4)
- 服务器性能 (7)
- Session共享 (1)
- tieye修改 (1)
- 工作 (1)
- 有用的语录 (0)
- https (2)
- common (5)
- 产品开发管理 (1)
- CDN 工作原理 (1)
- APNS、GCM (1)
- 架构图 (3)
- 功能实现分析 (1)
- JMX (1)
- 服务器相关操作命令 (1)
- img02 (0)
- 服务器环境搭建 (9)
- goodMenuBook (1)
- CEInstantPot (0)
- 有用数据 (1)
- 百度地图WEB API (2)
- 正则表达式 (1)
- 样式例子 (2)
- staticRecipePressureCooker.zip (1)
- jCanvas (1)
- 网站攻击方法原理 (1)
- 架构设计 (3)
- 物联网相关 (3)
- 研发管理 (7)
- 技术需求点 (1)
- 计划 (1)
- spring cloud (11)
- 服务器开发的一些实用工具和方法 (1)
- 每天学到的技术点 (4)
- Guava (1)
- ERP 技术注意要点 (2)
- 微信小程序 (1)
- FineRepor (1)
- 收藏夹 (1)
- temp (5)
- 服务架构 (4)
- 任职资格方案 (0)
- osno_test (1)
- jquery相关 (3)
- mybatis (4)
- ueditor (1)
- VueJS (7)
- python (10)
- Spring EL (1)
- shiro (1)
- 前端开发原理与使用 (7)
- YARN (1)
- Spark (1)
- Hbase (2)
- Pig (2)
- 机器学习 (30)
- matplotlib (1)
- OpenCV (17)
- Hystrix (1)
- 公司 (1)
- miniui (4)
- 前端功能实现 (3)
- 前端插件 (1)
- 钉钉开发 (2)
- Jenkins (1)
- elasticSearch使用 (2)
- 技术规范 (4)
- 技术实现原理 (0)
最新评论
shell 语法
#!/bin/bash //#!告诉系统这个脚本需要什么解释器来执行,即使用哪一种 Shell
echo "Hello World !"
Shell 变量
定义变量
your_name="runoob.com" //变量名和等号之间不能有空格
使用变量
echo $your_name //只要在变量名前面加美元符号即可
echo ${your_name} //变量名外面的花括号是可选的,加不加都行,加花括号是为了帮助解释器识别变量的边界,推荐给所有变量加上花括号
如:echo "I am good at ${skill}Script"
只读变量
myUrl="http://www.w3cschool.cc"
readonly myUrl
删除变量
unset variable_name
Shell 字符串
str='this is a string'
单引号里的任何字符都会原样输出,单引号字符串中的变量是无效的;
单引号字串中不能出现单引号(对单引号使用转义符后也不行)
双引号
your_name='qinjx'
str="Hello, I know your are \"$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="runoob is a great site"
echo ${string:1:4} # 输出 unoo //从字符串第 2 个字符开始截取 4 个字符
查找子字符串
string="runoob is a great company"
echo `expr index "$string" is` # 输出 8
Shell 数组
bash支持一维数组
用括号来表示数组,数组元素用"空格"符号分割开
array_name=(value0 value1 value2 value3)
读取数组
valuen=${array_name[n]}
echo ${array_name[@]}
@符号可以获取数组中的所有元素
# 取得数组元素的个数
length=${#array_name[@]}
传递参数
$0 //为执行的文件名
$# //传递到脚本的参数个数
$* //以一个单字符串显示所有向脚本传递的参数
$$ //脚本运行的当前进程ID号
$! //后台运行的最后一个进程的ID号
$@ //与$*相同,但是使用时加引号,并在引号中返回每个参数。
$- //示Shell使用的当前选项
$? //显示最后命令的退出状态。0表示没有错误,其他任何值表明有错误。
算术运算符
原生bash不支持简单的数学运算,但是可以通过其他命令来实现,例如 awk 和 expr,expr 最常用。
== //相等。用于比较两个数字,相同则返回 true。
!= 不相等。用于比较两个数字,不相同则返回 true。
关系运算符只支持数字,不支持字符串,除非字符串的值是数字。
-eq
-ne
-gt
-lt
-ge
-le
布尔运算符
!
-o
-a
逻辑运算符
&&
||
字符串运算符
= //检测两个字符串是否相等
!=
-z //检测字符串长度是否为0
-n //检测字符串长度是否为0,不为0返回 true。
if [ $a ] 检测字符串是否为空,不为空返回 true。
文件测试运算符
-b file 检测文件是否是块设备文件,如果是,则返回 true。 [ -b $file ] 返回 false。
-c file 检测文件是否是字符设备文件,如果是,则返回 true。 [ -c $file ] 返回 false。
-d file 检测文件是否是目录,如果是,则返回 true。 [ -d $file ] 返回 false。
-f file 检测文件是否是普通文件(既不是目录,也不是设备文件),如果是,则返回 true。 [ -f $file ] 返回 true。
-g file 检测文件是否设置了 SGID 位,如果是,则返回 true。 [ -g $file ] 返回 false。
-k file 检测文件是否设置了粘着位(Sticky Bit),如果是,则返回 true。 [ -k $file ] 返回 false。
-p file 检测文件是否是有名管道,如果是,则返回 true。 [ -p $file ] 返回 false。
-u file 检测文件是否设置了 SUID 位,如果是,则返回 true。 [ -u $file ] 返回 false。
-r file 检测文件是否可读,如果是,则返回 true。 [ -r $file ] 返回 true。
-w file 检测文件是否可写,如果是,则返回 true。 [ -w $file ] 返回 true。
-x file 检测文件是否可执行,如果是,则返回 true。 [ -x $file ] 返回 true。
-s file 检测文件是否为空(文件大小是否大于0),不为空返回 true。 [ -s $file ] 返回 true。
-e file 检测文件(包括目录)是否存在,如果是,则返回 true。 [ -e $file ] 返回 true。
#!/bin/bash //#!告诉系统这个脚本需要什么解释器来执行,即使用哪一种 Shell
echo "Hello World !"
Shell 变量
定义变量
your_name="runoob.com" //变量名和等号之间不能有空格
使用变量
echo $your_name //只要在变量名前面加美元符号即可
echo ${your_name} //变量名外面的花括号是可选的,加不加都行,加花括号是为了帮助解释器识别变量的边界,推荐给所有变量加上花括号
如:echo "I am good at ${skill}Script"
只读变量
myUrl="http://www.w3cschool.cc"
readonly myUrl
删除变量
unset variable_name
Shell 字符串
str='this is a string'
单引号里的任何字符都会原样输出,单引号字符串中的变量是无效的;
单引号字串中不能出现单引号(对单引号使用转义符后也不行)
双引号
your_name='qinjx'
str="Hello, I know your are \"$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="runoob is a great site"
echo ${string:1:4} # 输出 unoo //从字符串第 2 个字符开始截取 4 个字符
查找子字符串
string="runoob is a great company"
echo `expr index "$string" is` # 输出 8
Shell 数组
bash支持一维数组
用括号来表示数组,数组元素用"空格"符号分割开
array_name=(value0 value1 value2 value3)
读取数组
valuen=${array_name[n]}
echo ${array_name[@]}
@符号可以获取数组中的所有元素
# 取得数组元素的个数
length=${#array_name[@]}
传递参数
$0 //为执行的文件名
$# //传递到脚本的参数个数
$* //以一个单字符串显示所有向脚本传递的参数
$$ //脚本运行的当前进程ID号
$! //后台运行的最后一个进程的ID号
$@ //与$*相同,但是使用时加引号,并在引号中返回每个参数。
$- //示Shell使用的当前选项
$? //显示最后命令的退出状态。0表示没有错误,其他任何值表明有错误。
算术运算符
原生bash不支持简单的数学运算,但是可以通过其他命令来实现,例如 awk 和 expr,expr 最常用。
== //相等。用于比较两个数字,相同则返回 true。
!= 不相等。用于比较两个数字,不相同则返回 true。
关系运算符只支持数字,不支持字符串,除非字符串的值是数字。
-eq
-ne
-gt
-lt
-ge
-le
布尔运算符
!
-o
-a
逻辑运算符
&&
||
字符串运算符
= //检测两个字符串是否相等
!=
-z //检测字符串长度是否为0
-n //检测字符串长度是否为0,不为0返回 true。
if [ $a ] 检测字符串是否为空,不为空返回 true。
文件测试运算符
-b file 检测文件是否是块设备文件,如果是,则返回 true。 [ -b $file ] 返回 false。
-c file 检测文件是否是字符设备文件,如果是,则返回 true。 [ -c $file ] 返回 false。
-d file 检测文件是否是目录,如果是,则返回 true。 [ -d $file ] 返回 false。
-f file 检测文件是否是普通文件(既不是目录,也不是设备文件),如果是,则返回 true。 [ -f $file ] 返回 true。
-g file 检测文件是否设置了 SGID 位,如果是,则返回 true。 [ -g $file ] 返回 false。
-k file 检测文件是否设置了粘着位(Sticky Bit),如果是,则返回 true。 [ -k $file ] 返回 false。
-p file 检测文件是否是有名管道,如果是,则返回 true。 [ -p $file ] 返回 false。
-u file 检测文件是否设置了 SUID 位,如果是,则返回 true。 [ -u $file ] 返回 false。
-r file 检测文件是否可读,如果是,则返回 true。 [ -r $file ] 返回 true。
-w file 检测文件是否可写,如果是,则返回 true。 [ -w $file ] 返回 true。
-x file 检测文件是否可执行,如果是,则返回 true。 [ -x $file ] 返回 true。
-s file 检测文件是否为空(文件大小是否大于0),不为空返回 true。 [ -s $file ] 返回 true。
-e file 检测文件(包括目录)是否存在,如果是,则返回 true。 [ -e $file ] 返回 true。
发表评论
-
windowx 命令
2020-10-23 17:35 283windowx 端口占用 netstat -aon|finds ... -
linux常用命令
2020-04-08 08:21 319zip压缩目录 zip -qr test.zip /usr/t ... -
Linux 是如何实现阻塞进程功能的原理
2019-01-12 11:42 1679Linux 是如何实现阻塞进程功能的原理 linux等 ... -
Linux 命令使用集
2017-01-06 16:40 409Linux 命令使用集 //====== ... -
select、poll、epoll之间的区别总结
2016-09-06 14:46 1262select、poll、epoll之间的 ... -
IO - 同步,异步,阻塞,非阻塞,AIO
2016-09-06 14:43 704IO - 同步,异步,阻塞,非阻塞 阻塞与非阻塞(进程有没 ... -
日志文件系统
2016-09-06 10:14 550日志文件系统 日志文件系统当然要记录日志,而日志也需要占存储 ... -
Linux的原子操作与同步机制
2016-08-18 08:34 639Linux的原子操作与同步 ... -
Linux线程同步 读写锁 rwlock
2016-08-17 11:54 841读写锁比mutex有更高的适用性,可以多个线程同时占用读模式的 ...
相关推荐
**Shell语法与编程精选** Shell,作为Linux/Unix操作系统中的命令解释器,是用户与操作系统交互的重要工具。它不仅能够执行系统命令,还能通过编写脚本实现自动化任务处理,极大地提高了工作效率。本篇将深入探讨...
### Linux Shell语法与C语言语法对比详解 #### 引言 在IT行业中,尤其是在系统管理和自动化运维领域,熟悉Linux Shell编程对于提升工作效率至关重要。然而,由于Shell脚本编写的机会相对较少,很多程序员容易忘记...
这些示例脚本文件`if.sh`, `for.sh`, `re.sh`, `case.sh`, `until.sh`, `while.sh`, `fun2.sh`, `fun.sh`分别对应了上述不同的Shell语法结构。通过学习和实践这些脚本,你可以深入了解并掌握Shell编程的基本技能。
高级——配置——编辑器显示——语法着色——打开WORDFILE.UEW——将unixshell.uew中的内容复制到WORDFILE.UEW文件的末尾(与之前内容以空行隔开)
2. **Shell语法** - 条件表达式与测试命令:学习if、elif、else语句,以及test和[[命令]用于条件判断。 - 循环结构:掌握for、while、until循环的用法,以及如何处理数组。 - 函数定义与调用:了解如何在Shell...
### Shell编程基本语法详解 #### 一、Shell基本语法概览 **Shell** 是一种用于与计算机操作系统交互的脚本语言。它不仅提供了基础的命令行接口功能,还支持更复杂的编程逻辑,使得用户能够自动化任务处理流程。...
在本文中,我们将深入探讨Shell的基本语法,包括变量、控制结构、函数、输入/输出重定向以及脚本编写。 首先,让我们从Shell变量开始。在Shell中,变量用于存储数据。你可以使用`=`符号来赋值,如`NAME="John"`。...
Windows 命令行 Shell 命令详细解析和语法 Windows 命令行 Shell 命令是 Windows 操作系统中的一组基本命令,用于管理和维护计算机系统。这些命令可以帮助用户完成各种任务,例如管理文件和目录、配置系统设置、...
01.shell概述 02.shell中特殊字符 04.shell中参数:$0、$?、$!、$$、$*、$#、S@ 5.变量问题 5.1 shell变量概述 6.运算符 7.操作字符串 8.数组 9.分支与循环控制 10.函数 11.字符串的显示颜色 12.1/0重定向 13.正则...
适合新人学习shell
以下是一些常用的Shell语法及其应用: 1. **命令行参数**: 在Shell脚本中,参数可以使用变量$1, $2等来访问,其中$0代表脚本本身的名字。 2. **变量定义**: 变量赋值使用等号`=`,例如`name="John"`。不需要在变量...
使用方法详见: http://blog.sina.com.cn/s/blog_63c36bc901013ylk.html 用editplus编写好看的shell脚本
在“Shell脚本学习教程PDF版”中,你将深入理解Shell脚本的基本概念、语法结构以及高级特性。 首先,Shell脚本的基础包括变量、条件语句、循环结构和函数。变量是存储数据的地方,可以是文本、数字或者其他类型。在...
**二、Bash Shell语法** 1. **变量**:在Bash中,变量用于存储数据。声明变量时无需指定类型,如`VAR_NAME=value`。引用变量时,需在其前加上 `$` 符号,如`echo $VAR_NAME`。 2. **命令行参数**:脚本可以通过...
这个压缩包包含了关于"shell编程"的PDF讲稿和一些参考源码,对于学习和深入理解Shell语法有着极大的帮助。以下是对这些内容的详细解析: 首先,让我们关注标题中的“shell编程pdf讲稿”。这通常是一份详尽的教程,...
**shellcat:融合Shell语法的模板系统** shellcat是一个创新的模板引擎,它的核心特性是采用了与Shell脚本相似的语法。这个独特的设计使得熟悉Shell编程的开发者在处理文本模板时能够更加得心应手,无需学习额外的...
在这个绿色中文版中,它不仅保留了原有的优点,还特别强化了对特定文件类型的语法高亮支持,包括CMakeLists.txt、ShellScript (*.sh)以及PowerShell (*.ps)等文件。下面我们将详细探讨这些知识点。 首先,CMake是一...
本人自己制作的chm手册,估计全国仅此一本,此书可做为学习shell的教科书,也可做为shell语法手册
在shell脚本编程中,由于语法灵活性和缺乏内置的编译检查,错误和意外的行为是常见的问题。ShellCheck通过检查语法错误、未定义的变量、不安全的命令构造和不必要的复杂性等方面,提供了一种预防性的解决方案。它...