`
huangyongxing310
  • 浏览: 498699 次
  • 性别: Icon_minigender_1
  • 来自: 广州
文章分类
社区版块
存档分类
最新评论

shell 语法

 
阅读更多
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。









分享到:
评论

相关推荐

    shell语法与编程精选.

    **Shell语法与编程精选** Shell,作为Linux/Unix操作系统中的命令解释器,是用户与操作系统交互的重要工具。它不仅能够执行系统命令,还能通过编写脚本实现自动化任务处理,极大地提高了工作效率。本篇将深入探讨...

    Linux Shell语法速查表 用C语言语法来作对比

    ### Linux Shell语法与C语言语法对比详解 #### 引言 在IT行业中,尤其是在系统管理和自动化运维领域,熟悉Linux Shell编程对于提升工作效率至关重要。然而,由于Shell脚本编写的机会相对较少,很多程序员容易忘记...

    shell基本语法 (可下载示例代码)

    这些示例脚本文件`if.sh`, `for.sh`, `re.sh`, `case.sh`, `until.sh`, `while.sh`, `fun2.sh`, `fun.sh`分别对应了上述不同的Shell语法结构。通过学习和实践这些脚本,你可以深入了解并掌握Shell编程的基本技能。

    【linux命令基础】文件+网络配置+shell语法

    【linux命令基础】文件+网络配置+shell语法

    UltraEdit unix shell 语法高亮

    高级——配置——编辑器显示——语法着色——打开WORDFILE.UEW——将unixshell.uew中的内容复制到WORDFILE.UEW文件的末尾(与之前内容以空行隔开)

    Shell编程大全 高清PDF版

    2. **Shell语法** - 条件表达式与测试命令:学习if、elif、else语句,以及test和[[命令]用于条件判断。 - 循环结构:掌握for、while、until循环的用法,以及如何处理数组。 - 函数定义与调用:了解如何在Shell...

    shell编程基本语法

    ### Shell编程基本语法详解 #### 一、Shell基本语法概览 **Shell** 是一种用于与计算机操作系统交互的脚本语言。它不仅提供了基础的命令行接口功能,还支持更复杂的编程逻辑,使得用户能够自动化任务处理流程。...

    Shell基本语法

    在本文中,我们将深入探讨Shell的基本语法,包括变量、控制结构、函数、输入/输出重定向以及脚本编写。 首先,让我们从Shell变量开始。在Shell中,变量用于存储数据。你可以使用`=`符号来赋值,如`NAME="John"`。...

    Windows命令行Shell命令详细解析和语法

    Windows 命令行 Shell 命令详细解析和语法 Windows 命令行 Shell 命令是 Windows 操作系统中的一组基本命令,用于管理和维护计算机系统。这些命令可以帮助用户完成各种任务,例如管理文件和目录、配置系统设置、...

    Linux shell语法学习文档 PDF文档

    01.shell概述 02.shell中特殊字符 04.shell中参数:$0、$?、$!、$$、$*、$#、S@ 5.变量问题 5.1 shell变量概述 6.运算符 7.操作字符串 8.数组 9.分支与循环控制 10.函数 11.字符串的显示颜色 12.1/0重定向 13.正则...

    Shell脚本语法.txt

    适合新人学习shell

    shell常用语法实例

    以下是一些常用的Shell语法及其应用: 1. **命令行参数**: 在Shell脚本中,参数可以使用变量$1, $2等来访问,其中$0代表脚本本身的名字。 2. **变量定义**: 变量赋值使用等号`=`,例如`name="John"`。不需要在变量...

    editplus的shell高亮语法着色

    使用方法详见: http://blog.sina.com.cn/s/blog_63c36bc901013ylk.html 用editplus编写好看的shell脚本

    Shell脚本学习教程PDF版

    在“Shell脚本学习教程PDF版”中,你将深入理解Shell脚本的基本概念、语法结构以及高级特性。 首先,Shell脚本的基础包括变量、条件语句、循环结构和函数。变量是存储数据的地方,可以是文本、数字或者其他类型。在...

    shell教程.chm

    一本深入学习shell脚本艺术的书籍 这本书假定你没有任何关于脚本或一般程序的编程知识, 但是如果你具备相关的知识, 那么你将很容易就能够达到中高级的水平. . . 所有这些只是UNIX®浩瀚知识的一小部分. 你可以把本书...

    bash,shell模版 语法 设置文件

    **二、Bash Shell语法** 1. **变量**:在Bash中,变量用于存储数据。声明变量时无需指定类型,如`VAR_NAME=value`。引用变量时,需在其前加上 `$` 符号,如`echo $VAR_NAME`。 2. **命令行参数**:脚本可以通过...

    shell编程pdf讲稿及参考源码、语法

    这个压缩包包含了关于"shell编程"的PDF讲稿和一些参考源码,对于学习和深入理解Shell语法有着极大的帮助。以下是对这些内容的详细解析: 首先,让我们关注标题中的“shell编程pdf讲稿”。这通常是一份详尽的教程,...

    shellcat:具有 shell 语法的模板系统-开源

    **shellcat:融合Shell语法的模板系统** shellcat是一个创新的模板引擎,它的核心特性是采用了与Shell脚本相似的语法。这个独特的设计使得熟悉Shell编程的开发者在处理文本模板时能够更加得心应手,无需学习额外的...

    Notepad2 绿色中文版,支持 CMakeLists.txt、ShellScript(*.sh)、PowerShell(*.ps) 等等语法着色

    在这个绿色中文版中,它不仅保留了原有的优点,还特别强化了对特定文件类型的语法高亮支持,包括CMakeLists.txt、ShellScript (*.sh)以及PowerShell (*.ps)等文件。下面我们将详细探讨这些知识点。 首先,CMake是一...

Global site tag (gtag.js) - Google Analytics