美文网首页
shell脚本-变量

shell脚本-变量

作者: 五月的天at | 来源:发表于2020-12-07 14:06 被阅读0次

原文地址:https://www.sohu.com/a/300967157_100126044

一、简介

Shell是一种脚本语言,那么,就必须有解释器来执行这些脚本。Unix/Linux上常见的Shell脚本解释器有bash、sh、csh、ksh等,习惯上把它们称作一种Shell。我们常说有多少种Shell,其实说的是Shell脚本解释器。

二、基本介绍

1、学语言的经典”Hello World!”

打开文本编辑器,新建一个文件test.sh,扩展名为.sh(sh代表shell)。

输入一些代码:

#!/bin/bash

echo "Hello World !"

在命令行运行:

chmod +x test.sh && ./test.sh

运行结果:

2、注释

#!运行代码(是一个约定的标记,它告诉系统这个脚本需要什么解释器来执行,即使用哪一种Shell)

其他以#开头注释(一般有蓝色区分),会被解释器忽略。sh里没有多行注释,只能每一行加一个#号。

3、在命令行打印输出

(1)echo:Shell的一个内部指令,用于在命令行屏幕上打印出指定的字符串。

echo abc

PS:echo后单引号和双引号作用是不同的。单引号不能转义里面的字符。双引号可有可无,单引号主要用在原样输出中。

例如:

(2)printf:格式化输出语句。

printf 命令用于格式化输出, 是echo命令的增强版。它是C语言printf()库函数的一个有限的变形,并且在语法上有些不同。

如同 echo 命令,printf 命令也可以输出简单的字符串:

printf "123\n"

printf 不像 echo 那样会自动换行,必须显式添加换行符(\n)。

4、命令行从输入设备读入内容

#!/bin/bash

echo "What is your name?"

read name #输入

echo "你好, $name"

运行脚本:

chmod +x test1.sh && ./test1.sh

三、变量定义

1、定义变量

格式:变量=值 (默认变量类型是字符类型) abc=123

PS:等号两边不能有空格,对同一变量名定义,以最后一次定义的值生效

(1)查看已定义的变量-set

abc=123

set | grep abc

(2)变量命名规则:

首个字符必须为字母(a-z,A-Z)

区分字母大小写

可以使用字母、数字和下划线组合

但不能使用标点符号

2、使用变量

使用一个定义过的变量,只要在变量名前面加美元符号($)即可,如:$变量名

abc=123

echo $abc

3、删除变量-unset

变量被删除后不能再次使用;unset 命令不能删除只读变量。

unset abc

四、变量类型

1、局部变量:

(1)局部变量在脚本或命令中定义

(2)仅在当前shell实例中有效

(3)其他shell启动的程序不能访问局部变量

2、系统环境变量:

(1)系统启动时加载系统配置文件或服务的配置文件

(2)在文件中定义的所用用户都可以调用

(3)变量名是固定的,值可以被修改

(4)在写脚本时,系统环境变量可以直接被使用或者重新赋值

(5)env 查看当前所有已经定义的系统环境变量

(6)系统环境变量名一般是大写

3、shell预定义变量(特殊变量):

在使用的shell(/bin/bash)已经定义好的变量,变量名和变量值都不可以被修改,变量值根据当前的运行环境,随机获取的。

(1)$0 当前终端运行进程的进程名 当前执行脚本

(2)$n 传递给脚本或函数的参数

n 是一个数字,表示第几个参数。例如,第一个参数是$1,第二个参数是$2。testsh.sh脚本如下:

#!/bin/bash

echo "The Firiet Name: $0"

echo "The First Parameter : $1"

执行该脚本,sh testsh.sh firstPara( 设置$1参数的值)

(3)$! 当前终端后台运行最后运行进程的PID号

(4)$$ 当前终端运行进程的pid号

(5)$# 脚本或函数位置变量的总个数

(6)$* 脚本或函数所有位置变量的值

(7)$? 上一条命名执行后的返回状态

echo $? 0 表示上条命令执行正确 非0 表示上条命令执行不正确

例子:

[root@ecloud ~]# cat test3.sh

#!/bin/bash

echo "The Firiet Name: $0"

echo "The First Parameter : $1"

echo "The Second Parameter : $2"

echo "Quoted Values 1: $*"

echo "Total Number of Parameters : $#"

echo "This pid : $$"

echo "Return results :$?"

执行的结果如下:

相关文章

  • shell基础(一)

    一:shell脚本内容解释器 二:shell脚本的执行方式 三:变量 变量分为:环境(全局)变量和普通(局部)变量...

  • shell脚本基础

    编写脚本 编程基础 shell脚本 创建shell脚本 变量 运算 测试 配置用户的环境

  • shell第11章shell脚本

    什么是shell? Bash shell: 什么是shell脚本? 变量的介绍: 普通变量介绍: 环境变量介绍: ...

  • shell脚本语言

    Shell脚本语言 1.开始 2.运行 Shell 脚本的两种方法: 3.Shell变量 3.1定义变量 3.2使...

  • shell基础

    shell脚本 1.shell脚本执行方式 1.1 添加执行权 1.2 指定shell命令 2.shell变量 2...

  • shell脚本介绍、shell脚本结构和执行、date命令用法、

    目录 一、shell脚本介绍二、shell脚本结构和执行三、date命令用法四、shell脚本中的变量 一、she...

  • Shell 概述

    学习 Shell 主要包括的内容: Shell 脚本入门 Shell 变量 Shell 内置命令 Shell 运算...

  • 利用shell脚本设置hive查询语句中的变量

    在shell脚本中设置的变量,可以通过hive -e直接使用,例如: 方法总结为: 在shell脚本中添加变量 使...

  • Terminal如何添加自定义的Shell脚本

    添加Shell到环境变量 一个目录下都是Shell脚本, 将所以的Shell脚本都添加到环境变量。只有设置好777...

  • shell

    shell变量 变量类型:局部变量局部变量在脚本或命令中定义,仅在当前shell实例中有效,其他shell启动的程...

网友评论

      本文标题:shell脚本-变量

      本文链接:https://www.haomeiwen.com/subject/xdizwktx.html