**定义局部变量, 局部变量在退出Shell客户端时会失效**

**单引号:原样输出**

**双引号:如果里面有变量,会输出变量**

**没有引号:输出变量**

可以在调用脚本的时候给脚本传递参数,脚本内使用$1 $2 ...... 接受传递的参数,当参数超过9的时候,需要用花括号括起来 ${10}

特殊的调用参数:

    $0:返回Shell文件名称
$$:当前脚本的PID
$#:传递的所有参数
$@:程序中的所有参数,这是将参数传递给其他程序的最佳方式。
$! :执行的上一个命令的PID
$?:上一次指令的返回值
$_:此命令前面的最后一个参数
$* :获取所有的参数

**使用sh命令启动的脚本,则在脚本结束其内部的属性都会消失,其他的脚本不能访问其内部的属性。

使用source 命令启动脚本,则在脚本结束后其属性不会失效,同时其他的脚本也能访问到。

经过验证,使用 ./ 也可以执行脚本

使用unset可以取消变量,这个变量包括环境变量和局部变量**

定义数组 array=(value1 value2 value3) array_name[0]=value0

读取数组${array_name[index]}

获取数组中全部的元素${my_array[@]}

获取数组的长度${#my_array[*]}

流程控制

if

如果else语句中没有执行语句,不可以写

if condition
then
command1
command2
...
commandN
fi ------------------ if condition
then
command1
command2
...
commandN
else
command
fi ------------
if condition1
then
command1
elif condition2
then
command2
else
commandN
fi

for

for var in item1 item2 ... itemN
do
command1
command2
...
commandN
done

while

while condition
do
command
done

until

类似do-while循环,在最后判断条件,最少执行一次

until condition
do
command
done

case

case 值 in

模式1) command1 command2 ... commandN ;;

模式2) command1 command2 ... commandN ;; esac

函数

demoFun(){   // 定义
echo "这是我的第一个 shell 函数!"
}
echo "-----函数开始执行-----"
demoFun // 调用,如果需要传递参数直接在后面跟就好 demoFun 1 2 3
echo "-----函数执行完毕-----"

运算符

  • expr 是一款表达式计算工具,使用它能完成表达式的求值操作。

  • expr 2 + 2 使用方法 , 需要注意的为1.表达式和运算符之间要有空格 2. 需要用``引起来

关系运算符

使用方法

if [ $a -lt 100 -a $b -gt 15 ]
then
echo "$a 小于 100 且 $b 大于 15 : 返回 true"
else
echo "$a 小于 100 且 $b 大于 15 : 返回 false"
fi
逻辑运算符



shell入门练习的更多相关文章

  1. Linux shell入门基础(六)

    六.Shell脚本编程详解 将上述五部分的内容,串联起来,增加对Shell的了解 01.shell脚本 shell: # #perl #python #php #jsp 不同的脚本执行不同的文本,执行 ...

  2. Linux shell入门基础(一)

    Linux shell入门基础(一): 01.增加删除用户: #useradd byf   userdel byf(主目录未删除)  userdel -r byf   该用户的属性:usermod 用 ...

  3. Shell - 简明Shell入门

    本文以示例和注释的方式,对Shell编程的基本知识点进行了总结和回顾,所有脚本均已做了基本的调试和验证. Shell - 简明Shell入门 01 - 第一个脚本 脚本的定义.执行方法以及echo命令 ...

  4. linux shell 入门

    本文是本人学习linux shell入门收集整理,不完全原创. 参考博文: http://www.cnblogs.com/suyang/archive/2008/05/18/1201990.html ...

  5. shell 入门学习

    目录 shell 入门学习 注释 执行与启动 变量 语法 调试 title: shell 入门学习 date: 2019/7/16 15:47:49 toc: true --- shell 入门学习 ...

  6. Shell入门02

    Shell入门-02 1.重定向 标准输入(<) 标准输出 标准错误重回定向 程序 = 指令 + 数据 命令   变量 在程序中,数据如何输入?又如何输出? 数据输入:键盘 – 标准输入,但是并 ...

  7. Shell入门01

    Shell入门 1.基于硬件的虚拟化 2.基于平台的虚拟化 3.基于服务的虚拟化 4.基于库的虚拟化 5.基于操作系统的虚拟化 管理员使用Shell程序与操作系统进行交互,之前学习的shell脚本都是 ...

  8. 自学linux——11.shell入门

    shell 基础 1.shell介绍(内置脚本) 程序开发的效率非常高,依赖于功能强大的命令可以迅速地完成开发任务(批处理) 语法简单,代码写起来比较轻松,简单易学 (1)什么是shell shell ...

  9. 10_Linux基础-SHELL入门1

    @ 目录 10_Linux基础-SHELL入门1 一. 输入输出重定向 二. 2个特殊文件 三. here document 四. tee命令 五. 清空文件内容 六. SHELL入门 SHELL的变 ...

  10. Shell入门

    前言 日常用Python多一些,不过很多时候shell脚本更简单实用一些,所以有必要熟悉一下shell脚本.当然shell有他特定的一些场景,比方说我曾经改过一个vpn断线自动重连的脚本,简单实用. ...

随机推荐

  1. use crunch compression

    Crunch is a lossy compression format on top of DXTR texture compression. Textures will be converted ...

  2. 解决在Mac的Vmware Fusion中装win7系统和mac原生系统直接切换win7系统分辨率变化的问题

    虚拟机 - 设置 - 显示屏 - 全屏显示retina (此选项钩去掉)

  3. Django中的forms一些小点

    1.默认情况下,chrom浏览器会提前对我们的form表单中的数据做校验,如果不想让chrom浏览器给我们做校验,则只需要按照下面的方式处理就可以了 <form method="pos ...

  4. js replaceAll全部替换

    js不支持replaceAll,可以用函数new RegExp('要替换的内容','g')代替, 代码: str.replace(new RegExp('要替换的内容','g'),"替换内容 ...

  5. day 10 函数名的运用,闭包,迭代器

    函数名的本质 函数名本质上就是函数的内存地址 函数名的五种运用: 1.函数名是一个变量 def func(): print(666) print(func) # 函数的内存地址 <functio ...

  6. Jquery的Ajax中contentType和dataType的区别

    $.ajax({ type: httpMethod, cache:false, async:false, contentType: "application/json; charset=ut ...

  7. JS 获取屏幕的宽度和高度,各种方式

      Javascript: 网页可见区域宽: document.body.clientWidth网页可见区域高: document.body.clientHeight网页可见区域宽: document ...

  8. php RSA加密传输代码示例(轉)

    原文地址:http://www.cnblogs.com/firstForEver/p/5803940.html 涉及敏感数据的传输,双方最好约定使用加密解密.那RSA非对称加密就大有作为了. 服务端可 ...

  9. 27.MySQL备份与恢复

    27.备份与恢复27.1 备份/恢复策略考虑因素:备份表的存储引擎(事务性or非事务性):全备份or增量备份用复制做异地备份定期备份,考虑恢复时间确保mysql打开log-bin,有了BINLOG,M ...

  10. 8N - 水果

    夏天来了~~好开心啊,呵呵,好多好多水果~~ Joe经营着一个不大的水果店.他认为生存之道就是经营最受顾客欢迎的水果.现在他想要一份水果销售情况的明细表,这样Joe就可以很容易掌握所有水果的销售情况了 ...