`

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变量.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学习资料

    Linux Shell是Linux操作系统中用于与系统交互的一种命令行界面,它是用户与Linux内核之间的桥梁。Shell不仅可以执行单一的命令,还可以通过编写脚本实现复杂的自动化任务。在本学习资料包中,包含了三本关于Linux ...

    linuxshell编写变量介绍交互式PPT教案学习.pptx

    linuxshell编写变量介绍交互式PPT教案学习.pptx

    linux shell 视频教学

    接下来,视频可能会讲解Shell变量和环境变量的使用,它们用于存储数据并在不同命令间传递。例如,PATH环境变量指定了系统查找可执行文件的路径。学习如何设置、读取和修改这些变量是编写Shell脚本的关键。 条件语句...

    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脚本全面学习.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编写demo

    本文将深入探讨Linux Shell编写的基础知识,包括基本概念、常用命令、变量与参数、流程控制以及函数的使用。 首先,Shell是一个命令解释器,它接收用户输入的命令并执行。在Linux系统中,常见的Shell有Bash(Bourne...

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

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

    Linux Shell脚本系列教程(三):变量和环境变量.docx

    Linux Shell 脚本系列教程(三):变量和环境变量 本文主要讲解了 Linux Shell 脚本系列教程(三):变量和环境变量,涵盖了普通变量、环境变量、获取字符串的长度等内容。 变量 在 Linux Shell 脚本中,变量是必...

Global site tag (gtag.js) - Google Analytics