`

WindowsBatch与LinuxShell比较[变量符号和关键字]

 
阅读更多

一 简单实例
1)batch file

 

@echooff
rem output helloworld
::
output helloworld
Echo Hello World!

小结:
- batch file一般以bat或cmd为后缀。
- 第一行为@echo off表示关闭运行时batch file本身输入,只输出运行的结果。
- rem和::表示注释。

2)shell file

#!/bin/sh

# output helloworld
echo helloworld!

小结:
-shell file一般以sh,ksh,bash等结尾。
-第一行为#!/bin/sh用来用那种shell解释程序来解释本shell脚本,因为shell有多种,常见的有sh,ksh,tsh,bash等。
-#用来在shell中表示注释。
-shell file执行前需要修改权限为可执行,例如:chmod a+x shellfile.sh。

二 变量
1)batch file

Set Name = Value
Setpath= Name;%PATH%
Echo %path%

小结:
-用set来定义变量,=两边不可以使用空格。
-变量间用;隔开。
-使用%%来使用变量的值。

2) shell file

   Name=Value
PATH=Name:$PATH
Echo$PATH

小结:
-变量直接定义,且=两边不能有空格。
-变量间用:隔开。
-使用$来使用变量的值。

三 特殊变量


 
小结:
-可以使用shift来使用超过10个变量。
-windows的batchfiles中%~dp0%表示当前文件的目录。



四 变量的特殊用法
变量的替换:
1)batch file

%VariableName:ReplacementString=OriginalString%
set a=belcome to CMD borld!
set temp=%a:b=w%
echo %temp%
pause
将显示 welcome to
CMD world! 即用w替换了变量a中的b。

2)shell file

${VAR/PATTERN/STRING} or ${VAR//PATTERN/STRING} 语法。
第一种形式仅仅替换第一个匹配的项目,第二个用 STRING 替换所有匹配 PATTERN 的项目。


变量求子串:
1)batch file

复制代码
%VariableName:~StartPosition,Length%
set a=superhero
set temp=%a:~0,-3%
echo %temp%
pause
将显示superh 即显示了变量a的第0位和第-3位中间包含的所有字符。
复制代码

2) shell file

${varname:offset:length} Purpose: Returning parts of a string (substrings or slices).
STRING
="thisisaverylongname"
echo${STRING:6:5}


shell file中的其他的特殊用法:

复制代码
a. 变量=${参数-word}:如果设置了参数,则用参数的值置换变量的值,否则用word置换。即这种变量的值等于某一个参数的值,如果该参数没有设置,则变量就等于word的值。
b
. 变量=${参数=word}:如果设置了参数,则用参数的值置换变量的值,否则把变量设置成word,然后再用word替换参数的值。注意,位置参数不能用于这种方式,因为在Shell程序中不能为位置参数赋值。
c
. 变量=${参数?word}:如果设置了参数,则用参数的值置换变量的值,否则就显示word并从Shell中退出,如果省略了word,则显示标准信息。这种变量要求一定等于某一个参数的值。如果该参数没有设置,就显示一个信息,然后退出,因此这种方式常用于出错指示。
d
. 变量=${参数+word}:如果设置了参数,则用word置换变量,否则不进行置换。
复制代码


五 Call/start/source/sh
1)batch file中call/start
call, 父bat中的vars可以在子bat中访问,且子bat的修改可以返回到父bat中,或者如果子bat中新定义的vars也可以带回到父中。(因为最后子bat和父bat在执行时被合并为同一个bat)。
Start,父bat中的vars可以在子bat中访问,但是子bat修改不会被反映到父bat中,且子中定义的变量不会被带到父中。(子bat和父bat是独立的进程)。

2) shell file中source/sh/.
Source同.命令,与batch file中的call相同,父shell中的vars可以在子shell中访问,且子shell的修改可以返回到父shell中,或者如果子shell中新定义的vars也可以带回到父中。(因为最后子shell和父shell在执行时被合并为同一个shell)。
Sh,同batch file的start,但是有区别,父shell中的vars不能被在子中访问,且子中的修改不会被反映到父shell中,子中定义的变量不能被带到父中。如果将父中的vars使用export导入子中,则在子中可见,但是修改仍不能被带回父中。(子shell和父shell是独立的进程)。

六 特殊符号


 
七 错误代码
1) batch file
-errorlevel用来上次命令的返回值,如果为0表示成功。
2) shell file
-$?用来表示上次命令的返回值,如果为0表示成功。
3)2> file 表示将错误重定向到file,2>&1 表示将错误输出重定向到与标准输出相同。0表示标准输入,1表示标准输入,2表示错误输出。

八 表达式计算
1)batch file

复制代码
SET/A variable = Expression
set/a var=5+2
set/a var=55*34
set/a var=55/34
set/a var=55%%34
set/a var=(8+(9/3+7))*3
但set
/a vat=55.1*34是错误的,因为批处理不支持浮点运算。

SET/A x =1
SET/A y =2
SET/A z = x + y +3
ECHO z
复制代码


2)shell file

复制代码
a=2
c
=5
let b
=$a*$c
echo$b

$((i++))

$((3>2))
$(((3>2) || (4<=1)))

declare -i val3
=12 val4=5
declare -i result2
result2
=val3*val4
echo$result2
复制代码

小结:
Shell file中:
1) 常用运算符号:
++ Increment by one (prefix and postfix)
— Decrement by one (prefix and postfix)
+ Plus
- Minus
* Multiplication
/ Division (with truncation)
% Remainder
** Exponentiation[10]
<< Bit-shift left
>> Bit-shift right
& Bitwise and
| Bitwise or
~ Bitwise not
! Logical not
^ Bitwise exclusive or
, Sequential evaluation
2) 字符串比较:
< Less than
> Greater than
<= Less than or equal to
>= Greater than or equal to
== Equal to
!= Not equal to
&& Logical and
|| Logical or
3) 整数比较:
-lt Less than
-gt Greater than
-le Less than or equal to
-ge Greater than or equal to
-eq Equal to
-ne Not equal to
九 完!

感谢,Thanks!

作者:iTech
出处:http://itech.cnblogs.com/

  • 大小: 18.6 KB
  • 大小: 20.1 KB
分享到:
评论

相关推荐

    Linux中Java变量与java关键字。MyEclipse快捷键大全。Java方法

    总的来说,熟练掌握Linux环境下Java编程的变量和关键字,了解并运用MyEclipse的快捷键,以及理解和运用Java方法,是每个Java开发者必备的技能。通过不断的实践和学习,我们可以提高编程效率,编写出更加优秀的Java...

    linux超级基础系列——shell变量(本地变量和环境变量

    在Linux中,shell变量主要分为两大类:本地变量和环境变量。除此之外,还存在另外两种特殊变量,它们是只读的,并且主要用作向shell脚本传递参数。 本地变量仅在创建它们的shell生命期内有效,也就是说,它们只在...

    Shell脚本日志关键字监控+告警.docx

    本文将详细介绍如何使用 Shell 脚本来监控 Linux 服务器日志,并在出现关键字异常时触发相应的动作或告警操作,通知到邮件联系人。 安装邮件服务 为了实现邮件告警功能,需要先安装邮件服务。可以使用 mailx 软件...

    linux中shell变量.pdf

    Linux Shell 变量详解 Linux Shell 变量是 Linux 命令行中非常重要的一部分,它们...预定义 Shell 变量和用户定义变量都是 Linux Shell 变量的重要组成部分。通过使用 Shell 变量,可以更方便地执行任务和管理系统。

    LinuxShell编程基础教程.pdf

    本资源为 Linux Shell 编程基础教程,涵盖了 Linux Shell 编程的基础知识,包括语法基本介绍、变量、环境变量、Shell 命令和流程控制等。 一、语法基本介绍 在 Linux Shell 编程中,必须以#!开头,指定解释器的...

    判断Linux Shell环境变量是否存在

    ### Linux Shell 判断环境变量是否存在的方法 在Linux系统中,环境变量是非常重要的配置项,它们定义了系统的行为以及各种程序运行时所依赖的环境。因此,了解如何判断某个环境变量是否存在对于编写高效的Shell脚本...

    linux Shell编程入门 实例讲解详解

    Linux Shell编程是Linux系统中一种非常灵活的工具,通过shell编程可以自动化大量的任务,especially适合那些易用性、可维护性和便携性比效率更重要的任务。下面是Linux Shell编程入门的知识点总结: 一、Shell基础...

    Linux之Shell的变量设置.doc

    Linux Shell 变量设置知识点详解 Linux Shell 变量设置是一种非常重要的技术,在 Linux 中,每个用户登录系统之后都会有一个属于自己的 bash shell,每个人都能够使用 bash 执行命令来收取自己的邮箱,但是 bash 是...

    linuxshell编程学习笔记(5)shell运算符号和运算命令.pdf

    Linux Shell 编程学习笔记(5)Shell 运算符号和运算命令 本资源主要讲解了 Linux Shell 编程中的运算符号和运算命令,涵盖了基本的四则运算、自增自减运算、取余运算等多种运算符号和命令。下面是对该资源中涉及到...

    Linux Shell 脚本攻略

    - **定义和调用Shell函数**:通过`function`关键字或直接使用函数名定义,通过函数名调用。 - **函数参数**:函数可以接收参数,类似于位置参数。 6. **输入/输出重定向** - **标准输入(stdin)、标准输出...

    Linux的shell脚本

    局部变量和环境变量 运行 Shell 时,会同时存在三种变量: * 局部变量:该称为自定义变量。局部变量在脚本或命令中定义,仅在当前 Shell 实例中有效,其他 Shell 启动的程序不能访问局部变量。 * 环境变量:该也...

    linux shell 编程1

    总的来说,Linux Shell编程是Linux系统管理与自动化的重要手段,它不仅提升了工作效率,也为解决问题提供了灵活的解决方案。无论是日常使用还是专业开发,掌握这一技能都将对你的IT生涯产生积极的影响。

    linux shell 编程经典 教程

    Linux Shell编程是Linux系统管理与自动化任务处理的重要组成部分。Shell是一种命令行解释器,它提供了与操作系统交互的接口,允许用户执行系统命令、编写脚本并进行文件操作。本教程将深入探讨Linux Shell编程的经典...

    Linux-shell脚本全面学习.pdf

    Linux Shell 脚本编程基础知识点总结 Linux 脚本编写基础 1.1 语法基本介绍 * `#!` 符号用来告诉系统它后面的参数是用来执行该文件的程序 * 在 Linux 中,使用 `/bin/sh` 来执行程序 * 编辑好脚本后,需要使其可...

    linux shell 脚本入门

    Linux Shell脚本是Linux系统中用于自动化任务的强大工具,它基于Bash或其他Shell解释器,允许用户编写一系列命令,以实现批处理、任务调度或任何需要自动化的工作流程。本PDF文档"shell-script-entry.pdf"提供了18页...

    LinuxShell脚本编程实例

    Linux Shell脚本编程实例 Linux Shell脚本编程实例是指使用Linux Shell...Linux Shell脚本编程实例是Linux Shell脚本编程的基础,涵盖了 Linux Shell脚本编程的所有方面,包括变量、控制结构、函数、环境变量等等。

    LinuxShell脚本编程实例.pdf

    在Linux Shell脚本编程中,变量和环境变量是非常重要的概念。变量是用于存储值的容器,可以是数字、字符串或其他类型的值。环境变量是操作系统提供的一些预定义的变量,用于存储系统的配置信息。 在脚本中,可以...

    LinuxShell自动化运维-课后习题答案.docx

    Linux Shell 自动化运维课后习题答案 本文档提供了 Linux Shell 自动化运维课后习题答案,涵盖了 Linux Shell 编程、自动化运维等方面的...本文档旨在帮助读者更好地理解 Linux Shell 编程和自动化运维的概念和应用。

Global site tag (gtag.js) - Google Analytics