Linux之shell编程基础

一、变量

    变量在shell中分为:本地变量、环境变量、位置参数;

  本地变量:仅可在用户当前shell生命期的脚本中使用的变量,本地变量随着shell进程的消亡而无效,本地变量在新启动的shell中依旧无效,类似于c、c++中的局部变量的概念;

  环境变量:适用于所有登录进程所产生的子进程;

  位置参数:用于向shell脚本提供传递参数,它是只读的;

    变量是某个值的名称,引用变量值就称为:变量替换,$符号是变量替换符号,如variable是变量名,那么,$variable就是表示变量的值;

  variable=value  #切记:等号两边不能出现空格

  ${variable=value}  #同上

  示例如下:

    var1="hello world"

    var2="I say"

    var3="we are saying $var1"    #ok

  变量的清除:unset命令

    unset 变量名  

  unset var之后,echo  $var ,结果显示空白行,这表示var变量没有初始化;

变量赋值的模式:

  var=value  #注意:等号两边不能有空格

 1 1、变量已初始化情况
 2 root@222-132-16-50:~/cp/sh# colour="reb"
 3 root@222-132-16-50:~/cp/sh# echo "is ${colour+"blue"}"
 4 is blue
 5 root@222-132-16-50:~/cp/sh# echo $colour
 6 reb
 7 root@222-132-16-50:~/cp/sh# unset colour
 8 2、变量未被初始化情况, ":=" 和":-" 对已初始化的变量操作,无作用
 9 root@222-132-16-50:~/cp/sh# unset colour
10 root@222-132-16-50:~/cp/sh# echo $colour
11
12 root@222-132-16-50:~/cp/sh# echo "is ${colour:="red"}"
13 is red
14 root@222-132-16-50:~/cp/sh# echo $colour
15 red
16 root@222-132-16-50:~/cp/sh# unset colour
17 root@222-132-16-50:~/cp/sh# echo "is ${colour:-"red"}"
18 is red
19 root@222-132-16-50:~/cp/sh# echo $colour
20
21 root@222-132-16-50:~/cp/sh# 

 

  

 

时间: 2024-09-30 17:58:59

Linux之shell编程基础的相关文章

Linux shell编程基础 三、shell的基本结构

shell结构大体是由设定变量.内置命令.shell的语法结构.函数组成. 使用实例说明:test.sh #!/bin/bash #说明使用/bin/bash作为这个脚本的解释器 #定义一个函数 function my_fun () { echo "Hello, $1,today is $2" } #定义连个变量 name=$1 today=`date` #函数调用 my_fun "$name" "$today" 上面的这个脚本要想运行还需要做一

Linux集群和自动化维2.2 Shell编程基础

2.2 Shell编程基础 Shell是核心程序Kernel之外的命令解析器,是一个程序,同时也是一种命令语言和程序设计语言. 作为一种命令语言Shell可以交互式地解析用户输入的命令. 作为一种程序设计语言Shell定义了各种参数,并且提供了高级语言才有的程序控制结构,虽然它不是Linux核心系统的一部分,但是它调用了Linux核心的大部分功能来执行程序,建立文件并以并行的方式来协调程序的运行. 比如,输入命令ls后,Shell就会解析ls这个命令并且向内核发出请求,内核执行这个命令之后,把结

SHELL编程基础之BASH入门

1.了解SHELL 只要能够操作应用程序的接口都能够称shell.shell也是一个应用程序,工作在用户模式,运行为进程.shell进程主要用于提供命令行界面,提供一系列的工作特性,有些特性可以自行的设定.当用户通过多种方式登录到Linux操作系统时,我们就可以认为该用户打开了一个SHELL,从而和系统进行交互. shell在linux系统下的角色如下: 2.为什么要学习shell 命令行界面的shell是很不好的,但是学完之后好处却很多.例如图形化界面像windows xp.win 7每个版本

【SHELL 编程基础第二部分】SHELL里的流程控制、SHELL里的函数及脚本调试方法!

本站文章均为 李华明Himi 原创,转载务必在明显处注明:  转载自[黑米GameDev街区] 原文链接: http://www.himigame.com/shell/764.html 对于Shell书写和概念上一篇已经有所介绍,那么本篇继续学习Shell编程一些语法知识: 首先介绍Shell中的流程控制,例如判断语句等等- if语句: 首先了解几个知识: [ -f "somefile" ] :判断是否是一个文件 [ -x "/bin/ls" ] :判断/bin/l

Linux下Shell编程

Linux的shell编程  1.什么是shell? 当一个用户登录Linux系统之后,系统初始化程序init就为每一个用户运行一个称为shell(外壳)的程序. shell就是一个命令行解释器,它为用户提供了一个向Linux内核发送请求以便运行程序的界面系统级程序,用户可以用shell来启动.挂起.停止甚至是编写一些程序.一般的Linux系统都将bash作为默认的shell. 2.几种流行的shell 目前流行的shell有ash.bash.ksh.csh.zsh等,可以用下面的命令来查看sh

Linux下Shell编程快捷键大全(日常整理)_linux shell

有时候,我们需要在 Bash 中重复执行先前的命令.你当然可以使用上方向键来查看之前曾经运行过的命令.但这里有一些更好的方式,例如,数量掌握以下的快捷键. 1) !!:重复执行上一条指令 2) !a:重复执行上一条以a为首的指令 3) !number:重复执行上一条在history表中记录号码为number的指令 4) !-number:重复执行前第number条指令 5) !$:表示获得上一条命令中的最后一项内容 6) 用Ctrl + r 组合键来进入历史搜索模式在history表中查询某条过

Shell编程基础

本文作者:Leal 授权许可: 创作共享协议 GNU自由文档许可证 编辑人员:FireHare, Dbzhang800 我们可以使用任意一种文字编辑器,比如gedit.kedit.emacs.vi等来编写shell脚本,它必须以如下行开始(必须放在文件的第一行): #!/bin/sh ... 注意:最好使用"!/bin/bash"而不是"!/bin/sh",如果使用tc shell改为tcsh,其他类似. 符号#!用来告诉系统执行该脚本的程序,本例使用/bin/sh

linux shell-Linux shell 编程,能否像Java一样做单元测试

问题描述 Linux shell 编程,能否像Java一样做单元测试 现在正在做一个Linux shell项目,想问下各位大神,做Linux shell编程,能否做到像Java一样用Junit做单元测试? 有什么编程工具能与Eclipse类似吗? 解决方案 http://blog.163.com/njut_wangjian/blog/static/16579642520129269144664/ 解决方案二: 单元测试的话,还真没有遇到合适的.不过开发过程,可以使用sublime text这个软

shell编程基础知识小结_linux shell

1.文件类型介绍linux系统中主要包括以下七种文件类型: d 目录 - 普通文件 l 符号链接 s 套接字文件 b 块设备文件 c 字符设备文件 p 命名管道文件 2.正则表达式正则表达式在shell编程中非常重要. 从一个文件或命令输出中抽取或过滤文本时.可使用正则表达式(RE),正则表达式是一些特殊或不很特殊的字符串模式的集合. 基本的元字符集:^ 只匹配行首.$ 只匹配行尾.* 一个单字符后紧跟*,匹配0个或多个此单字符.[] 匹配[]内字符,可以是一个单字符,也可以是字符序列.可以使用