linux echo 变量 字符串,Linux使用者必看:shell脚本-变量

原标题:Linux使用者必看:shell脚本-变量

一、简介

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

二、基本介绍

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

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

输入一些代码:

#!/bin/bash

echo "Hello World !"

01575a7186ea77424a96637bb7973359.png

在命令行运行:

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

运行结果:

368dff80ac2096a90c2ffcdd0bb2e866.png

2、注释

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

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

6e4fca4a53770a61bffc67820ba899bf.png

3、在命令行打印输出

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

echo abc

12e5a527749f90ec34ade37a600cb305.png

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

例如:

1352e73a66e3b217c5897154d4ee0579.png

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

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

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

printf "123\n"

c3e6a4758aca193c3d3a25552b8cb62e.png

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

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

#!/bin/bash

echo "What is your name?"

read name #输入

echo "你好, $name"

运行脚本:

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

eb8fdf9fc723e1ee060f41d5d3c31730.png

三、变量定义

1、定义变量

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

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

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

abc=123

set | grep abc

9a71b519cc73b63000960bda5616f527.png

(2)变量命名规则:

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

区分字母大小写

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

但不能使用标点符号

2、使用变量

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

abc=123

echo $abc

6eb90decfcc24737b0caa0651b158524.png

3、删除变量-unset

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

unset abc

24669f87ae174b38b4b4680b3123599c.png

四、变量类型

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

(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 :$?"

执行的结果如下:

84fd5ebf306b5842aabed4df8e110b34.png

文章来自公众号:睿江云计算

责任编辑:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值