导航:首页 > 程序命令 > shell变量命令

shell变量命令

发布时间:2022-12-31 04:08:32

㈠ 如何在shell脚本中使用变量

在shell脚本中变量的定义,只能以字母和下划线开始,区分大小写,可以包含数字、字母下划线。

示例代码,读取用户输入到变量myvar,然后再输入。

#!/bin/bash

echo "input myvar"

read myvar
echo "myvar is $myvar"

效果如下:

㈡ shell变量定义【学习总结】

简单来说就是将需要执行的命令保存到文本中,按照顺序执行。它是解释型的,意味着不需要编译

变量名的定义规则:
变量名严格区分大小写,不能有特殊字符,不能以数字开头,等号两边不能有任何空格,变量名尽量做到见名知意

1、基本方式
直接赋值给一个变量,变量名=变量值

2、命令执行结果赋值给变量

3、交互式定义变量(read)
目的: 让用户自己给变量赋值,比较灵活
常见选项释义:
-p 定义提示用户的信息
-n 定义字符数(限制变量值的长度)
-s 不显示(不显示用户输入的内容)
-t 定义超时时间,默认单位为秒(限制用户输入变量值的超时时间)

4、定义有类型的变量(declare)
目的: 给变量做一些限制,固定变量的类型,比如:整型、只读
用法:declare 选项 变量名=变量值
常用选项:
-i 将变量看成整数 declare -i A=123
-r 定义只读变量 declare -r B=hello

unset 变量名

相同点:引号中的内容可以作为一个整体
不同点:双引号可以引用变量,单引号不能引用变量

* :匹配0个或者任意多个字符
? :任意单个字符
[a-z] :括号内的任意单个字符
! :取反
{string,string,string} :匹配括号里面用逗号隔开的所有的字符串
{1..100} :匹配一个序列

案例:

1.脚本名称 ***.sh

2.脚本内容
1)定义解析器
#!/bin/bash
#!/bin/env bash 优势:会自动去找当前系统的解析器位置
2)注释说明
#
3)程序本身
定义变量+基本命令+基本语法+思想

1、标准脚本执行方法 :相对路径或者绝对路径
前提:标准执行方式脚本必须要有 可执行权限

2、非标准的执行方法 (不建议)
场景:查看脚本执行过程;或者脚本无法赋予可执行权限
解析器 +脚本文件

㈢ Shell之环境变量、局部变量

变量可分为两类:

环境变量又被称为全局变量,可以在创建的shell以及任意子进程shell中使用。局部变量只能在创建的shell脚本中使用。

环境变量用于定义Shell的运行环境,保证Shell命令的正确执行,Shell通过环境变量来确定登录的用户名、登录目录等。所有的环境变量都是系统的全局变量,可用于所有的子进程中。

环境变量可以在命令行中设置,但用户退出后这些变量值也会随之丢失,所以最好在下面的文件或者目录中配置,每次用户登录都将会被初始化:

环境变量可用在任意的Shell进程中,环境变量名一般大写,并且是已经使用export内置命令进行了导出。比如HOME、PATH、UID、USER等,在用户登陆之前已经本/bin/login程序设置好了。

下面是常见的系统环境变量:

更多详情请通过env命令查看:

如果设置想自己设置环境变量,有临时生效和永久生效两种:

在.bash_profile或者/etc/profile文件中使用export导出变量,然后使用"."或者source命令使其生效。

系统的内置的环境变量或者自定义的环境变量可以通过echo或者printf进行打印:

对于有哪些变量使用env(上述已经说过)或者set命令:

使用unset取消变量,不要随意使用,尤其是系统环境变量:

局部变量的生命周期是当前的Shell脚本,如果启动另一个Shell进程或者退出当前Shell进程,变量就会丢失。

局部变量又三种定义方式:

变量名一般以字母、数字、下划线组成,其中以字母开头。

为了更好的说明上面定义的三种方式,即不加引号、加单引号、加双引号的区别,以下面的例子说明:

上述a、b、c输出为:

在上面的基础上如果变成下面的例子:

a、b、c的输出有时什么呢?

从上面的例子中可以看出第一种定义a变量的方式(不带引号),内容一般为简单连续的数字、字符串等;第二种定义b变量的方式(单引号)所见即所得,内容原样输出;第三种定义c变量的方式(双引号),输出变量时引号中变量会经过解析后输出。

所以,脚本中单纯的数字可以不使用引号,但是其它普通字符串尽量使用双引号。

系列教程:

Python虚拟环境搭建-学习视频教程-腾讯课堂ke.qq.com

㈣ 下面哪个命令是用来定义shell的全局变量

定义shell的全局变量用export命令。

它可以用于导出全局变量 。在计算机科学中,Shell俗称壳(用来区别于核),是指“为使用者提供操作界面”的软件(命令解析器)。它类似于DOS下的command.com和后来的cmd.exe。它接收用户命令,然后调用相应的应用程序。

(4)shell变量命令扩展阅读:

用途

使用用户的缺省凭证和环境执行 shell。

在UEFI环境下,EFI的Shell环境提供了一组丰富的扩展和增强的命令,在以后的计算机中,传统的DOS界面将会被SHELL环境所取代,所有的.exe文件将不会在以后支持SHELL的环境中出现,取而代之的文件后缀是.efi。

在SHELL环境下,分为IA32和X64,32位的*.efi文件不能在X64的计算机中运行。

shell 命令

常用命令

cat 文件名 输出文件内容到基本输出(屏幕 or 加>fileName 到另一个文件)

cb 格式化源代码

chmod //change mode,改变文件的权限

cp

date 当前的时间和日期

echo $abc 在变量赋值之后,只需在变量前面加一个$去引用.

lint语法检查程序。

㈤ Shell基本脚本命令使用教程

1、本地变量:用户私有变量,只有本用户可以访问,保存在家目录的 .bash_profile、.bashrc文件中
2、全局变量:所有用户都可以使用,保存在 /etc/profile 文件中
3、用户自定义变量:用户自定义,比如脚本中的变量
定义变量格式: 变量名=值 (=两边不能有空格)
字符串用单引号或者双引号引起来

shell支持正则表达式的常见命令:grep、sed、awk。

sed 是一个行(流)编辑器,非交互式的对文件内容进行增删改查操作

awk 能够集过滤、提取、运算为一体,它的工作方式是读取数据,将每一行数据视为一条记录,每条记录以字段分隔符分成若干字段,然后输出各个字段的值。平行命令还有 gawk、pgawk、dgawk。

㈥ 下面哪个命令是用来定义shell的环境变量

exports。 export命令是用来定义shell的环境变量。至此之后,从当前shell脚本执行的任何应用程序都会继承这个变量。

㈦ shell中的几种变量的区别

1、环境变量        2、临时变量         3、全局变量

env:来查询环境变量,环境变量能被当前进程和子进程调用,但是不能被新开终端调用              set:是列出所有的临时变量和环境变量,临时变量只能被当前进程调用                                        export:是可以将临时变量变为环境变量                                                                                        unset:取消变量                                                                                              

4、全局变量:

    $HOME/.bashrc:当前用户的bash信息,包括aliase、umask等                          $HOME/.bash_profile:当前用户的环境变量,此处的环境变量可以在新开终端调用        $HOME/.bash_logout:每个用户推出去当前shell时最后读取的文件

5、位置参数变量

    解释:主要是向脚本中传递数据,变量名不能自定义,变量作用是固定的                                    $n:$0代表命令本身,$1-9代表接受的第1-9个参数,10以上需要用{}括起来,比如${10}代表接收的第10个参数                                                                                                                                       $*:代表接收所有的参数,将所有参数看作一个整体                                                                      $@:代表接收的所有参数,将每个参数区别对待                                                                          $#:代表接收的参数个数                                                                                                                $?:代表上一个命定的返回值,0为标准输出,1&2表示没有那个目录或文件,返回127表示命令没找到,返回126表示找到了命令但是无法执行,权限不够

6、定义有类型的变量

     declare                                                                                                                                              -i将变量看成整数                                                                                                                                 -r只读变量                                                                                                                                          -x标记变量通过环境导出,也就是说直接将变量定义为了环境变量

7、 交互式定义变量的值read 主要用于让用户去定义变量值

        -p 提示信息:提示要输入的内容,可以任意定义                                                                            -n 字符数:定义要输入的字符串最长是多少个字符                                                                          -s 不显示 :主要用于密码设置,设置时不会显示,具体用法视情况而定                                         

㈧ 如何在shell脚本中使用变量

在网络中 搜索 linux 系统中使用变量 关键词 ,有问题网络。 下面是我查的示例。


  1. 显示环境变量HOME


$ echo $HOME

/home/redbooks

2. 设置一个新的环境变量hello

$ export HELLO="Hello!"

$ echo $HELLO

Hello!

3. 使用env命令显示所有的环境变量

$ env

HOSTNAME=redbooks.safe.org

PVM_RSH=/usr/bin/rsh

Shell=/bin/bash

TERM=xterm

HISTSIZE=1000

...

4. 使用set命令显示所有本地定义的Shell变量

$ set

BASH=/bin/bash

BASH_VERSINFO=([0]="2"[1]="05b"[2]="0"[3]="1"[4]="release"[5]="i386-redhat-linux-gnu")

BASH_VERSION='2.05b.0(1)-release'

COLORS=/etc/DIR_COLORS.xterm

COLUMNS=80

DIRSTACK=()

DISPLAY=:0.0

...

5. 使用unset命令来清除环境变量

set可以设置某个环境变量的值。清除环境变量的值用unset命令。如果未指定值,则该变量值将被设为NULL。示例如下:

$ export TEST="Test..." #增加一个环境变量TEST

$ env|grep TEST #此命令有输入,证明环境变量TEST已经存在了

TEST=Test...

$ unset $TEST #删除环境变量TEST

$ env|grep TEST #此命令没有输出,证明环境变量TEST已经存在了

6. 使用readonly命令设置只读变量

如果使用了readonly命令的话,变量就不可以被修改或清除了。示例如下:

$ export TEST="Test..." #增加一个环境变量TEST

$ readonly TEST #将环境变量TEST设为只读

$ unset TEST #会发现此变量不能被删除

-bash: unset: TEST: cannot unset: readonly variable

$ TEST="New" #会发现此也变量不能被修改

-bash: TEST: readonly variable

环境变量的设置位于/etc/profile文件

如果需要增加新的环境变量可以添加下属行

export path=$path:/path1:/path2:/pahtN

-----------------------------------------------------------------------------------------------------------------------

1.Linux的变量种类

按变量的生存周期来划分,Linux变量可分为两类:

1.1 永久的:需要修改配置文件,变量永久生效。

1.2 临时的:使用export命令声明即可,变量在关闭shell时失效。

2.设置变量的三种方法

2.1 在/etc/profile文件中添加变量【对所有用户生效(永久的)】

用VI在文件/etc/profile文件中增加变量,该变量将会对Linux下所有用户有效,并且是“永久的”。

例如:编辑/etc/profile文件,添加CLASSPATH变量

# vi /etc/profile

export CLASSPATH=./JAVA_HOME/lib;$JAVA_HOME/jre/lib

注:修改文件后要想马上生效还要运行# source /etc/profile不然只能在下次重进此用户时生效。

2.2 在用户目录下的.bash_profile文件中增加变量【对单一用户生效(永久的)】

用VI在用户目录下的.bash_profile文件中增加变量,改变量仅会对当前用户有效,并且是“永久的”。

例如:编辑guok用户目录(/home/guok)下的.bash_profile

$ vi /home/guok/.bash.profile

添加如下内容:

export CLASSPATH=./JAVA_HOME/lib;$JAVA_HOME/jre/lib

注:修改文件后要想马上生效还要运行$ source /home/guok/.bash_profile不然只能在下次重进此用户时生效。

2.3 直接运行export命令定义变量【只对当前shell(BASH)有效(临时的)】

在shell的命令行下直接使用[export 变量名=变量值] 定义变量,该变量只在当前的shell(BASH)或其子shell(BASH)下是有效的,shell关闭了,变量也就失效了,再打开新shell时就没有这个变量,需要使用的话还需要重新定义。

3.环境变量的查看

3.1 使用echo命令查看单个环境变量。例如:

echo $PATH

3.2 使用env查看所有环境变量。例如:

env

3.3 使用set查看所有本地定义的环境变量。

unset可以删除指定的环境变量。

4.常用的环境变量

PATH 决定了shell将到哪些目录中寻找命令或程序

HOME 当前用户主目录

HISTSIZE历史记录数

LOGNAME 当前用户的登录名

HOSTNAME指主机的名称

SHELL 当前用户Shell类型

LANGUGE 语言相关的环境变量,多语言可以修改此环境变量

MAIL当前用户的邮件存放目录

PS1基本提示符,对于root用户是#,对于普通用户是$

㈨ 在Shell脚本中,读取键盘输入的内容并将其赋值给Shell变量的命令是什么

在sell脚本中,读取键盘输入的内容并将其赋值给shell变量的命令为:

read-p"inputaval:"valecho$val

read - 从标准输入读取数值。这个 read 内部命令被用来从标准输入读取单行数据。这个命令可以用来读取键盘输入,当使用 重定向的时候,读取文件中的一行数据。

它的语法形式一般是:

read[-options][variable...]

这里的 options 是下面列出的可用选项中的一个或多个,且 variable 是用来存储输入数值的一个或多个变量名。 如果没有提供变量名,shell 变量 REPLY 会包含数据行。

基本上,read 会把来自标准输入的字段赋值给具体的变量。

㈩ shell变量的使用及输入输出

(1),命名只能使用英文字母,数字和下划线,首个字符不能以数字开头。
(2),中间不能有空格,可以使用下划线(_)。
(3),不能使用标点符号。
(4),不能使用bash里的关键字(可用help命令查看保留关键字)

shell的变量只有字符串类型,所以当不用引号引起来的时候,要暴走变量的值不包含特殊符号,如空格,美元符,&符.

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

使用 readonly 命令可以将变量定义为只读变量,只读变量的值不能被改变。

运行:

使用 unset 命令可以删除变量。语法:

示例

运行:

(1)单引号
单引号里的任何字符都会原样输出,单引号字符串中的变量是无效的
(2)双引号
双引号里可以有变量,也可以出现转义字符

(1)定义数组
方法一:

方法二:

(2)读取数组内容

(3)获取数组长度

结果:

结果:

(1).输入不在终端显示
read -p "Input passwd:" -s Passwd
echo $Passwd
(2)限时输入,否则退出
延迟五秒,没有输入将自动退出:
read -p "Input a number:" -t 5 Number
(3) 读取限定字符
从输入中取 5 个字符:
read -p "Input a word:" -n 5 Word

<< 可以被认为是一种重定向符.重定向脚本文件中的一行作为一个命令输入.
操作符<<被放在输入重低昂小的命令之后,紧跟在<<的各行作为命令的输入,输入的结尾通过文件结束符(ctrl+D)表示,也可以自己定义定界符,定界符后的单词作为输入各行借宿的定界符.

阅读全文

与shell变量命令相关的资料

热点内容
dvd光盘存储汉子算法 浏览:757
苹果邮件无法连接服务器地址 浏览:963
phpffmpeg转码 浏览:671
长沙好玩的解压项目 浏览:145
专属学情分析报告是什么app 浏览:564
php工程部署 浏览:833
android全屏透明 浏览:737
阿里云服务器已开通怎么办 浏览:803
光遇为什么登录时服务器已满 浏览:302
PDF分析 浏览:485
h3c光纤全工半全工设置命令 浏览:143
公司法pdf下载 浏览:382
linuxmarkdown 浏览:350
华为手机怎么多选文件夹 浏览:683
如何取消命令方块指令 浏览:349
风翼app为什么进不去了 浏览:778
im4java压缩图片 浏览:362
数据查询网站源码 浏览:150
伊克塞尔文档怎么进行加密 浏览:892
app转账是什么 浏览:163