Shell 编程基本语法-变量使用方法 | 学习笔记

简介: 快速学习 Shell 编程基本语法-变量使用方法。

开发者学堂课程【Shell 编程入门到精通Shell 编程基本语法-变量使用方法】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:https://developer.aliyun.com/learning/course/453/detail/5593


Shell 编程基本语法-变量使用方法


内容简介:

一、Shell 基本语法

二、变量

三、综合实例

 

一、 Shell  基本语法

(1)简单的 shell 程序

[root@xuegod63 test]# vim example01.sh  #写入以下内容

#!/bin/bash

#This is to show what a example looks like.

echo Our first example

echo #This inserts an empty line in output.

echo We are currently in the following directory.

pwd

echo

echo This directory contains the following files.

ls

[root@xuegod63 test]# chmod +x example01.sh

[root@xuegod63 test]# √example01.sh

Our first example

We are currently in the following directory

/root/test

This directory contains the following files

example01.sh

[root@xuegod63 test]#

(2)注释

#!/bin/bash  #!跟  shell  命令的完全路径。

作用:显示后期命令以哪种  shell  来执行这些命令。

如不指  shell  ,以当前  shell 作为执行的  shell 。

[root@xuegod63 test]# ||/bin/sh

lrwxrwxrwx.1 root root 4 Dec 18 2012/bin/sh -> bash

#This is to show what a example looks like.以  shell  中以#开始头表示,整个行就被当作一个注释。

执行时被忽略。

Shell  程序一般以  .sh  结尾

(3)创建 shell 程序的步骤

第一步:创建一个包含命令和控制结构的  shell  文件。

第二步:修改这个文件的权限使它可以执行。

使用chmod u +x

第三步:执行

方法1:√example01.sh

方法2:使用绝对路径

[root@xuegod63 test]# /root/test/example01.sh

方法3:[root@xuegod63 test]# bash example01.sh

 

二、变量

(1) shell  变量

变量是  shell  传递数据的一种方法。变量是用来代表每个值的符号名。像 1+x=3 中,用  x  代表一个未知项,有时也可当成一个变量。

例:  x=3

Shell 有两类变量:

①临时变量:是  shell  程序内部定义的,其使用范围仅限于定义它的程序,对其他程序不可见。

②永久变量:是环境变量,其值不随  shell  脚本的执行结束而消失。

例:

如: $PATH

[root@xuegod63 test]# echo $PATH

/usr/lib64/qt-3.3/bin:/usr/local/sbin:/usr/sbin:/sbin:/usr/local/bin/:/usr/bin:/bin:/root/bin

#用作运行某个命令的时候,本地查找不到某个命令或文件,会到这个声明的目录去查找。

[root@xuegod63 test]# which ls

alias ls=ls - - color=auto

/bin/ls

[root@xuegod63 test]# ls

example01.sh

上述中的  ls  因为可以在某个目录中找到,即在  /bin  上是可以找到的,所以可以直接执行  ls  ;若上面没有  /bin  , ls  便不能直接执行。

 (2)用户定义变量

由字母或下划线打头。 由字母、数字或下划线组成,并且大小写字母意义不同。

变量名长度没有限制。在使用变量值时,要加前缀$

例:  1VAR 是非法变量。(由于是数字开头所以为非法变量)

(3) 变量赋值

赋值号=“两边应没有空格。

例1:

[root@xuegod63 test]# A=aaa

[root@xuegod63 test]# A = aaa

bash:A command not found

例2:将一个命令的执行结果赋给变量。

[root@xuegod63 test]# A=`date`

[root@xuegod63 test]# echo $A

Sat Feb 7 20:54:26 CST 2015

[root@xuegod63 test]# B=$(ls -1)

[root@xuegod63 test]# echo $B

[root@xuegod63 test]# A=$B

[root@xuegod63 test]# echo $A

例3:利用变量和其他字符组成一个新的字符串。

[root@xuegod63 test]# MYDIR=/home/mk

[root@xuegod63 test]# echo $MYDIR/zhangsan

/home/mk/zhangsan

[root@xuegod63 test]# DAY=mon

[root@xuegod63 test]# echo Today is $DAYday

Today is

[root@xuegod63 test]# echo Today is $DAY day

Today is mon day

[root@xuegod63 test]# echo Today is ${DAY}day

Today is Monday

例4:给变量赋值多个单词

[root@xuegod63 test]# NAME=mike Ron

[root@xuegod63 test]# echo $NAME

mike Ron

[root@xuegod63 test]# NAME=shen mk

[root@xuegod63 test]# echo $NAME

shen mk 

(4)列出所有变量:

set  命令

例:

[root@xuegod63 test]# set | grep DAY

DAY=mon

(5)单引号与双引号在变量中的区别

单引号之间的内容原封不动地指定给了变量;双引号取消了空格的作用,特殊符号的含义保留。

例1:

[root@xuegod63 test]# NAME=mike Ron $NAME

[root@xuegod63 test]# echo $NAME

mike Ron shen mk

例2:

[root@xuegod63 test]# NAME=mike Ron $NAME

[root@xuegod63 test]# echo $NAME

mike Ron $NAME

(6)删除变量

使用  unset

例:

[root@xuegod63 test]# echo $NAME

mike Ron $NAME

[root@xuegod63 test]# unset NAME

[root@xuegod63 test]# echo $NAME

(7)位置变量

Shell  解释执行用户的命令时,将命令行的第一个字作为命令名,而其他字作为参数。由出现在命令行上的位置确定的参数称为位置参数。位置变量使用  $N 来表示。

例:

[root@xuegod63 test]# √example.sh file2 file3

$0  这个程序的文件名为  example.sh

$n  这个程序的第n个参数值,n=1..N

(8)特殊变量

有些变量是一开始执行  Script  脚本时就会设定,且不能被修改,但我们不叫它只读的系统变量,而叫它特殊变量。这些变量当一执行程序时就有了,用户无法将一般的系统变量设定成只读的。

以下是一些等殊变量:

$*   这个程序的所有参数

$#   这个程序的参数个数

$$   这个程序的  PID

$!   执行上一个后台程序的  PID

$?   执行上一个指令的返回值

 

三、综合实例

(1)小综合实例

[root@xuegod63 test]# cat z.sh

#!/bin/bash

echo $ 表示这个程序的所有参数

echo $表示这个程序的参数个数

touch/tmp/a.txt

echo $$ 表程序的进程  ID  

touch/tmp/b.txt &

echo $! 执行上一个后台指令的  PID  

echo $$ 表程序的进程  ID  

测试:

[root@xuegod63 test]# √z.sh aaa bbb ccc

aaa bbb ccc 表示这个程序的所有参数

3  表示这个程序的参数个数

3899 表程序的进程 ID

3901 执行上一个后台指令的  PID

3899 表程序的进程 ID

(2)变量在  shell  中使用的实例

[root@xuegod63 test]# cat z1.sh

#!/bin/bash

var1=abcd efg

echo $var1

var2=1234

echoThe value of var2 is $var2

echo $HOME

echo $PATH

echo $PWD

[root@xuegod63 test]# chmod +x z1.sh

[root@xuegod63 test]# √z1.sh

abcd efg

The value of var2 is 1234

/root

/usr/lib64/qt-3.3/bin:/usr/local/sbin:/usr/sbin:/sbin:/usr/local/bin:/usr/bin:/bin:/root/bin

/root/test

相关文章
|
2月前
|
Shell Linux
Linux shell编程学习笔记30:打造彩色的选项菜单
Linux shell编程学习笔记30:打造彩色的选项菜单
|
26天前
|
运维 监控 Shell
深入理解Linux系统下的Shell脚本编程
【10月更文挑战第24天】本文将深入浅出地介绍Linux系统中Shell脚本的基础知识和实用技巧,帮助读者从零开始学习编写Shell脚本。通过本文的学习,你将能够掌握Shell脚本的基本语法、变量使用、流程控制以及函数定义等核心概念,并学会如何将这些知识应用于实际问题解决中。文章还将展示几个实用的Shell脚本例子,以加深对知识点的理解和应用。无论你是运维人员还是软件开发者,这篇文章都将为你提供强大的Linux自动化工具。
|
1月前
|
Shell
Shell编程(下)
Shell编程(下)
92 1
|
1月前
|
Shell Linux Windows
Shell编程(上)
Shell编程(上)
41 1
|
1月前
|
存储 Java Shell
Shell 变量
10月更文挑战第2天
26 0
|
1月前
|
Shell Linux 开发工具
|
1月前
|
监控 Unix Shell
shell脚本编程学习
【10月更文挑战第1天】shell脚本编程
70 12
|
2月前
|
Shell Linux
Linux shell编程学习笔记82:w命令——一览无余
Linux shell编程学习笔记82:w命令——一览无余
|
Shell 测试技术 C语言
|
1月前
|
Shell
一个用于添加/删除定时任务的shell脚本
一个用于添加/删除定时任务的shell脚本
86 1