linux怎么可以远程更改变量

linux怎么可以远程更改变量,第1张

我们来看看所有这些 $ 值可以告诉你什么。

-- Sandra Henry-stocker

变量通常看起来像 $var 这样,但它们也有 $1、$*、$? 和 $$ 这种形式。让我们来看看所有这些 $ 值可以告诉你什么。

有许多重要的值都存储在 Linux 系统中,我们称为“变量”,但实际上变量有几种类型,并且一些有趣的命令可以帮助你使用它们。在上一篇文章中,我们研究了以及它们定义在何处。在本文中,我们来看一看在命令行和脚本中使用的变量。

用户变量

虽然在命令行中设置变量非常容易,但是有一些有趣的技巧。要设置变量,你只需这样做:

$ myvar=11

$ myvar2="eleven"

要显示这些值,只需这样做:

$ echo$myvar

11

$ echo$myvar2

eleven

你也可以使用这些变量。例如,要递增一个数字变量,使用以下任意一个命令:

$ myvar=$((myvar+1))

$ echo$myvar

12

$ ((myvar=myvar+1))

$ echo$myvar

13

$ ((myvar+=1))

$ echo$myvar

14

$ ((myvar++))

$ echo$myvar

15

$ let "myvar=myvar+1"

$ echo$myvar

16

$ let "myvar+=1"

$ echo$myvar

17

$ let "myvar++"

$ echo$myvar

18

使用其中的一些,你可以增加一个变量的值。例如:

$ myvar0=0

$ ((myvar0++))

$ echo$myvar0

1

$ ((myvar0+=10))

$ echo$myvar0

11

通过这些选项,你可能会发现它们是容易记忆、使用方便的。

你也可以删除一个变量 – 这意味着没有定义它。

$ unsetmyvar

$ echo$myvar

另一个有趣的选项是,你可以设置一个变量并将其设为只读。换句话说,变量一旦设置为只读,它的值就不能改变(除非一些非常复杂的命令行魔法才可以)。这意味着你也不能删除它。

$ readonly myvar3=1

$ echo$myvar3

1

$ ((myvar3++))

-bash:myvar3:readonly variable

$ unsetmyvar3

-bash:unset:myvar3:cannot unset:readonly variable

你可以使用这些设置和递增选项中来赋值和 *** 作脚本中的变量,但也有一些非常有用的内部变量可以用于在脚本中。注意,你无法重新赋值或增加它们的值。

内部变量

在脚本中可以使用很多变量来计算参数并显示有关脚本本身的信息。

◈ $1、 $2、 $3 等表示脚本的第一个、第二个、第三个等参数。

◈ $# 表示参数的数量。

首先,修改Linux的环境变量PATH的语法是这样的(以把/root目录加入PATH环境变量为例):PATH="$PATH":/root,注意Linux的PATH环境变量各个路径之间是用英文冒号分割的(这点和Windows的PATH环境变量有所区别,Windows的PATH环境变量的路径之间用英文分号分割)。

解释:"$PATH"这一部分代表原来的PATH环境变量的内容,因为PATH环境变量是如此重要,对PATH环境变量的修改都是在原PATH的基础上进行添加,所以用"$PATH"导入原PATH的内容,然后后面用英文冒号分割开,再加上/root这个新添加的内容。意思就是在原PATH内容的基础上添加/root这个路径(尽量在原PATH的内容基础上添加,不要去掉原PATH里面的任何内容)。

那对PATH环境变量的修改应该写在那个配置文件中呢?如果想让设置只对当前用户有效,可以在~/.bashrc文件中加入如下两行(还是以添加/root目录为例):

PATH="$PATH":/root

export PATH

添加完成后,如果想让设置马上生效,还需要执行这样一条命令:source ~/.bashrc。(否则你的设置只会在下次登录才生效)

如果想让修改对所有用户都有效,则需要把设置添加到/etc/profile这个配置文件中,添加的内容和在~/.bashrc中的一样。

环境变量(environment variables)一般是指在 *** 作系统中用来指定 *** 作系统运行环境的一些参数,这些参数会对系统行为产生影响。

比如常用的PATH环境变量,当要求系统运行一个程序而没有告诉它程序所在的完整路径时,系统除了在当前目录下面寻找此程序外,还会到PATH中指定的路径去找。你可以在终端使用printenv PATH/echo $PATH查看当前PATH变量的值。

Linux系统下修改/自定义环境变量的方法通常分为两类:临时修改和永久性修改。下面分别介绍两种修改环境变量的方法。在这里以修改linux系统下的PATH环境变量(该环境变量保存了linux系统下所有可执行的程序的目录,linux系统执行某个可执行程序时,会以该环境变量的值(路径)去寻找可执行的程序名)为例进行举例。

PATH环境变量:该环境变量保存了linux系统下所有可执行的程序的目录,linux系统执行某个可执行程序时,会以该环境变量的值(路径)去寻找可执行的程序名,如果找到,则可以执行,如果找不到则会提示:无法找到××命令的错误。

1、临时修改/自定义环境变量

(1)临时自定义环境变量。

注意,系统默认的环境变量名称一般为大写,自定义的环境变量名称一般为小写,这样是为了避免命名上的冲突。

自定义临时环境变量时,有两种办法,一种是在terminal终端命令行直接定义,如下:

在这里插入图片描述

注意,此时自定义的my环境变量的作用范围仅限于当前shell(此时定义的my变量实际上是局部变量),在当前shell的子shell中无法寻找到该自定义变量。直接在其子shell中无法直接使用它。要想在其子shell中使用,必须用export命令来导出它为全局变量。

在这里插入图片描述

如上图所示,在定义my环境变量的子shell中无法识别到my环境变量。

当定义完my环境变量后,利用export命令将其转化为全局变量:

在这里插入图片描述

可以看到,使用export将my环境变量导出成全局变量后,在其子shell中也可以识别到。

**注意!!!!**使用export导出的my环境变量仅仅适用于当前的shell及其衍生shell中,退出当前shell后,my变量将不复存在。所以,这也是该方法被称为临时定义变量的原因。

自定义临时环境变量时,除了在terminal终端命令行直接定义外,还可以使用shell脚本的方法来事先定义好一个环境变量。并用source命令(或者 . 命令)(这么做是因为使用这两个命令是在当前shell中激活该脚本,不会产生子shell)在使用该变量的shell中激活该shell脚本即可。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/7675721.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-08
下一篇 2023-04-08

发表评论

登录后才能评论

评论列表(0条)

保存