llinux学习基础4之变量及条件测试

一 bash的变量类型

bash变量类型:

环境变量

本地变量(局部变量)

位置变量

特殊变量

bash中的变量分为四种 一 是环境变量 二 是本地变量 三是局部变量,每种变量的作用域不一样。环境变量作用于当前shell 及其子shell 。本地变量 紧作用于当前shell。局部变量紧作用于当前shell中一段代码。

1.1 环境变量的定义 export VALNAME=VALUE

注意:***命令行执行的脚本程序都是要新建一个进程,其执行过程就是开启子shell,因此环境变量对子进程是有效的。但是系统默认执行的脚本 是不需要开开启子shell的,但是他是需要定义环境变量的!

1.2 本地变量的定义  VALNAME=VALUE

1.3 局部变量的定义  local VALNAME=VALUE

1.4位置变量

$1 $2 $3  第一个位置  第二个位置 第三个位置

5特殊变量(系统变量)

$? 表示上一个命令的执行状态返回值

执行成功0

执行错误1-255

其中1、2、127系统已经定义了 其他的用户可以自己定义错误代码

二变量的引用

${} 其中{}可以省略  在不引起变量名称混淆的前提下{}可以省略

例如 ANIMIAL=pig

echo “there are some $ANIMINALs  ”

此时就会引起变量名的混淆,就必须添加{},如果引用了一个没有赋值的变量名 则会显示空

NAME=jim

echo “my name is $NAME”  双引号弱引用可以变量替换(引用)

echo’my name is $NAME’ 单引号强引用不能用于变量替换(引用)

三 系统中变量的查看

1查看系统中所有环境变量和本地变量  set

2 查看系统中所有环境变量 printenv ,export ,env

脚本的执行

#!/bin/bash

脚本的第一行必须是指明脚本执行的解释器的路径

脚本编写完成后有两种方式执行脚本

第一种是直接使用 bash 命令的方式执行

如 bash /tmp/onebash.sh

第二种是给文件执行权限 在输入文件的路径来执行,或者是将文件的路径添加到$PATH的路径中去后,在直接执行文件名来执行!

二 条件测试类型

1 整数测试

2字符串测试

3文件测试

条件测试的表达式一般的三种形式 1 [空格expression空格]

2[[空格expression空格]]

3 test expression

1整数测试 -eq  测试两个整数是否相等,等为真,不等为假

-ne  测试两个整数是否不等,不等为真,等为假

-gt  大于

-ge 大于等于

-lt 小于

-le 小于等于

2字符串测试

== 等于

!= 不等于

-n  测试字符串是否不为空,不为空为真,空为假

-z  测试字符串是否为空 空为真 不空为假

3文件测试 实例

1[ -e /etc/inittab ] 测试是否存在

2[ -r /etc/inittab ] 测试当前登录的用户是否具有读权限

3[ -w /etc/inittab ]测试当前登录的用户是否具有写权限

4[ -x /etc/inittab ]测试当前登录的用户具有执行权限

5[ -f /etc/inittab ]测试该文件是否是普通文件

6[ -d /etc/inittab ]测试该文件是否是目录

三命令间的逻辑判断

&& 与 || 或

&& 操作是 第一个为真时 第二个一定会执行

第一个为假时  第二个一定不执行

||  操作时 第一个为假时 第二个一定会执行

第一个为真是 第二个一定不会执行

注意:&& 或者|| 都是取的命令执行后的返回值进行判断 而不是命令的执行结果

注意 所有变量的名称只能是 字母数字和下划线 为组合且不能以数字开头 不应该与系统中的已有的变量同名

id user1 &> /dev/null && echo the user is exist || useradd user1

如果用户不存在 则添加 并给其密码 否则显示已存在

! id user2 &> /dev/null && useradd user2 && echo "user2" | passwd --stdin user2 &> /dev/null  || echo user2 is exist

2判断一个用户的uid 是否为0 如果是 显示为管理员 否则显示为普通用户

[ `id -u root` -eq 0 ] && echo the current user is admin || echo the current user is common

四算数运算

shell 中如何进行算术运算

A=3  B=5

1 let C=$A + $B

2 C=$[$A+$B]

3 C=$(($A+$B))

4 exper 算数表达式  算数表达式中各操作数和运算符之间要有表达式,且要使用反引号

C=`exper $A + $B `

时间: 2024-10-12 15:44:25

llinux学习基础4之变量及条件测试的相关文章

Shell脚本基础、使用变量、条件测试及选择、列表式循环

Shell语言 脚本:可以运行,一个文件,可以实现某种功能(命令的堆积) [[email protected] ~]# vim /root/stu.sh echo hello worldcat /etc/redhat-releaseuname -rhostname ifconfig | head -2 [[email protected] ~]# chmod +x /root/stu.sh [[email protected] ~]# /root/stu.sh 案例1:书写一个创建用户的脚本 [

shell脚本基础知识梳理<三>:条件测试与比较、流程控制 if

一.条件测试与比较1.test 测试表达式 常用test -f file && echo true||echo false2.[ 测试表达式 ] 特别常用[ -f file ]&& echo true||echo false3.[[ 测试表达式 ]]二.流程控制 1.流控制语句 if实例1#!/bin/bash#获取uid=0(root)中的0:id=id | awk -F '[=(]' '{print $2}'echo "your user id is:$id&

Python新手学习基础之数据类型——变量

关于Python的变量是这样描述的: 变量是存储在内存里的一个值,通过变量名,我们可以访问到该变量的值. 上面这几行代码中,price,count和sum都是变量,Python是动态类型语言,变量是不需要声明的,只要在使用变量前,对其进行赋值即可,变量只有被赋值了,才会被创建.关于赋值,我们会在之后的博文会再详细介绍哦. Python有6个标准的变量数据类型: Numbers(数字) String(字符串) List(列表) Tuple(元组) Set(集合) Dictionary(字典) 我们

java基础学习总结——java环境变量配置(转)

java基础学习总结——java环境变量配置 前言 学习java的第一步就要搭建java的学习环境,首先是要安装 JDK,JDK安装好之后,还需要在电脑上配置"JAVA_HOME”."path”."classpath"这三个环境变量才能够把java的开发环境 搭建好.在没安装过jdk的环境下,path环境变量是系统变量,本来存在的,而JAVA_HOME和classpath是不存在的. 一.配置JAVA_HOME变量 操作步骤(win7系统):计算机→右键“属性”→高

BASH编程基础之变量、条件判断

一.前言 在linux中,通常我们所指的脚本编程,指的是bash的脚本编程. bash作为一种过程式的编程语言来说,它应该具备编程语言所应该具备的基本元素,即:变量,流程,函数,数组.今天我们介绍变量以及流程之一的条件判断. 二.变量 1.初识变量 在编程语言中,编程语言有两大种,强类型语言和弱类型语言. 强类型语言中,要求变量的使用要严格符合定义,所有变量都必须先定义后使用.java..NET.C++等都是强制类型定义的. 与其相对应的是弱类型语言:数据类型可以被忽略的语言.它与强类型定义语言

JAVA学习(三):Java基础语法(变量、常量、数据类型、运算符与数据类型转换)

Java基础语法(变量.常量.数据类型.运算符与数据类型转换) 1.变量 Java中,用户可以通过指定数据类型和标识符来声明变量,其基本语法为: DataType identifier; 或 DataType identifier = value; 其中,DataType是变量类型,如int/string/char/double/boolean等:identifier是变量名称,即标识符:value就是声明变量的值. 注: a.标识符由数字0-9.大小写字母.下划线.美元符号.人民币符号以及所有

【Linux学习 009】脚本编程之变量和条件判断

一.Bash环境变量 bash中变量有四种种类型:环境变量.本地变量(局部变量).位置变量.特殊变量. 1.环境变量 环境变量作用范围最广,所有子bash进程都能够访问环境变量中的值,定义环境变量的方法是使用export关键字.举例: [email protected]:~$ export A=abc [email protected]:~$ echo $A abc [email protected]:~$ 2.本地变量 本地变量作用范围是当前bash,子bash访问不到父bash中定义的变量,

shell基础 变量 条件测试 判断结构

Top NSD ENGINEER DAY02 案例1:Shell脚本的编写及测试 案例2:重定向输出的应用 案例3:使用特殊变量 案例4:编写一个判断脚本 案例5:编写一个批量添加用户脚本 1 案例1:Shell脚本的编写及测试 1.1 问题 本例要求两个简单的Shell脚本程序,任务目标如下: 编写一个面世问候 /root/helloworld.sh 脚本,执行后显示出一段话“Hello World!!” 编写一个能输出系统信息的 /root/sysinfo 脚本,执行后依次输出当前红帽系统的

语言的学习基础,100个经典的算法

POJ上做做ACM的题 语言的学习基础,100个经典的算法C语言的学习要从基础开始,这里是100个经典的算法-1C语言的学习要从基础开始,这里是100个经典的算法 题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔 子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数 为多少? __________________________________________________________________ 程序分析:兔子的规律为数列1,1,2,3,5,8