首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

bash中的变量

bash中的变量 <span style="display: inline !...2 设置<em>变量</em> 3 环境<em>变量</em> 局部<em>变量</em>与环境<em>变量</em> 在<em>bash</em>中,<em>变量</em>是一个用来存储数据的实体。...每个<em>变量</em>都有一个<em>名称</em>和一个值,<em>名称</em>是<em>变量</em>的标识符,值是<em>变量</em>的数据。...<em>bash</em>有一些默认的环境<em>变量</em>,使用env查看: $ env XDG_SESSION_ID=39513 TERM=xterm SHELL=/bin/<em>bash</em> # 省略 在<em>bash</em>中,环境<em>变量</em>的<em>变量</em>名一般全部采用大写字母...<em>bash</em>中有一些默认的环境<em>变量</em>,比如HOSTNAME的值为计算机<em>名称</em>,HOME的值为用户的家目录,LOGNAME的值为当前的用户表示,PATH的值为搜索程序的目录等。

2.2K80
您找到你想要的搜索结果了吗?
是的
没有找到

bash变量和参数

对一个编程脚本来说,最最基础的当然是变量。 对大多数开发者来说,变量也是最不值得的大说特说的。 但 bash 里的变量有一些特别的地方值得说说,谨防跌坑。...双引号,弱引用,变量会被替换 echo "foo \$a"; # ? 转义,变量不会被替换 变量类型 这里当然不是说字符串、整形什么的,其实 bash 中的变量都可以理解为字符串。...bash 中有四种类型的变量,它们是环境变量、本地变量、位置变量和特殊变量。 环境变量 参看维基百科的环境变量,这里不做赘述。 本地变量 我们上面的那么多的例子其实就是本地变量。...当前脚本的文件名 $* 和 $@ 的区别 echo $*; echo $@; # 没有双引号,两者一样,都以"$1" "$2" … "$n" 的形式输出所有参数 echo "$*"; # 会将所有的参数作为一个整体...参考文章 bash shell学习之变量 Shell变量 How to tell if a string is not defined in a bash shell script?

1.1K30

(23)Bash位置参数变量

位置参数变量 位置参数变量主要是用来向脚本当中传递参数或数据的,变量名不能自定义,变量作用是固定的。...位置参数变量 作用 $n n为数字,$0代表命令本身,$1-9代表第一到第九个参数,十以上的参数需要用大括号包含,如9代表第一到第九个参数,十以上的参数需要用大括号包含,如9代表第一到第九个参数,十以上的参数需要用大括号包含...,如{10}. $* 这个变量代表命令行中所有的参数,$*把所有的参数看成一个整体 $@ 这个变量也代表命令行中所有的参数,不过$@把每个参数区分对待 $# 这个变量代表命令行中所有参数的个数 例1...②通过$n实现一个简单的加法计算器 $n就是用来把你的命令和命令后面跟的参数传递给脚本中的$n(n=1,2,3,4…)代表的位置参数变量 ? 例2.$#、$*、$@ ①简单演示 ?

85320

bash变量和参数

对一个编程脚本来说,最最基础的当然是变量。 对大多数开发者来说,变量也是最不值得的大说特说的。 但 bash 里的变量有一些特别的地方值得说说,谨防跌坑。...双引号,弱引用,变量会被替换 echo "foo \$a"; # ? 转义,变量不会被替换 变量类型 这里当然不是说字符串、整形什么的,其实 bash 中的变量都可以理解为字符串。...bash 中有四种类型的变量,它们是环境变量、本地变量、位置变量和特殊变量。 环境变量 参看维基百科的环境变量,这里不做赘述。 本地变量 我们上面的那么多的例子其实就是本地变量。...当前脚本的文件名 $* 和 $@ 的区别 echo $*; echo $@; # 没有双引号,两者一样,都以"$1" "$2" … "$n" 的形式输出所有参数 echo "$*"; # 会将所有的参数作为一个整体...参考文章 bash shell学习之变量 Shell变量 How to tell if a string is not defined in a bash shell script?

1.4K00

Bash特殊变量:$0, $#, $*, $@, $?, $$实战

在linux下配置shell参数说明 前面已经讲到,变量名只能包含数字、字母和下划线,因为某些包含其他字符的变量有特殊含义,这样的变量被称为特殊变量。...例如,$ 表示当前Shell进程的ID,即pid,看下面的代码: $echo $$ 运行结果 29949 特殊变量列表 变量 含义 $0 当前脚本的文件名 $n 传递给脚本或函数的参数。.../bin/bash echo "File Name: $0" echo "First Parameter : $1" echo "First Parameter : $2" echo "Quoted...但是当它们被双引号(" ")包含时,"$*" 会将所有的参数作为一个整体,以"$1 $2 … $n"的形式输出所有参数;"$@" 会将各个参数分开,以"$1" "$2" … "$n" 的形式输出所有参数.../bin/bash echo "\$*=" $* echo "\"\$*\"=" "$*" echo "\$@=" $@ echo "\"\$@\"=" "$@" echo "print each

89540

SHELL(bash)脚本编程一:变量

和所有的编程语言一样,bash也提供变量变量是一些用来指代数据并支持数据操作的名称。...select 关键字提示符 PS4 shell调试模式下的提示符 HOME 当前用户的家目录 PWD 当前工作目录 OLDPWD 前一个工作目录 # cd 命令后如果没有任何参数时,则使用$HOME作为默认参数...[root@centos7 ~]# echo ${var_1:2:-2} llo wor [root@centos7 ~]# parameter是@或使用@或*作为下标的数组时,则offset和length...word扩展后的结果会作为模式匹配(通配符匹配,见这里)变量的值,一个#表示删除最短匹配前缀,##表示删除最长匹配前缀: [root@centos7 ~]# echo $PATH /usr/local/...]# 如果parameter是@或*或以@或*作为下标的数组变量,删除操作将作用于每个位置变量或数组的每个参数 [root@centos7 ~]# echo ${array[@]} 星期四 星期二 星期三

2.7K40

linux bash环境变量简单总结

HISTSIZE: 是指保存历史命令记录的条数 HOSTNAME: 是指主机的名称,许多应用程序如果要用到主机名的话,通常是从这个环境变量中来取得的。...三.Bash实现原理简介 bash使用GNU Readline库处理用户命令输入,Readline提供类似于vi或emacs的行编辑功能。 bash运行时的调度中心是其主控循环。...对于bash这个Shell程序来说,可以通过 变量名来访问相应的环境变量。 Linux 的环境变量具有继承性,即子shell 会继承父shell 的环境变量。...变量内容的设定和替换 一次变量置换: 变量没有值: echo ${a:=abc} //若a没有值,就送给a一个abc,作为它的值,这时a的值就永久是...则可能会因此覆盖掉某些程序的一部分内存空间 从而轻易的获取该程序的控制权,若该程序是系统进程,则它将可能获取系统权限 shell中数组相关操作: —【注:shell中的数组不能做为export导出的对象,因此它仅不能作为环境变量

1.8K60

(21)Bash用户自定义变量

每个变量有一个名字,所以很容易引用它。使用变量可以保存有用信息,使系统获知用户相关设置,变量也可以用于保存暂时信息。 1.变量设置规则 ①变量名称可以由字母、数字和下划线组成,但是不能以数字开头。...如果变量名是“2name”则是错误的。 ? ②在Bash中,变量的默认类型都是字符串型,如果要进行数值运算,则必须指定变量类型为数值型。 ③变量用等号连接值,等号左右两侧不能有空格。 ?...不过变量需要用双引号包含“$变量名”或用${变量名}包含。 ? ⑦如果是把命令的结果作为变量值赋予变量,则需要使用反引号或$()包含命令。 ? ⑧环境变量名建议大写,便于区分。...2.变量分类 ①用户自定义变量,又称本地变量 ②环境变量:这种变量中主要保存的是和系统操作环境相关的数据。...③位置参数变量:这种变量主要是用来向脚本当中传递参数或数据的,变量名不能自定义,变量作用是固定的。 ④预定义变量:是Bash中已经定义好的变量变量名不能自定义,变量作用也是固定的。

64130

Bash 环境变量的那些事

bash 变量,尤其是讨厌的环境变量,已经是一个老生常谈的话题了。我们也更应该对它有一个详细的了解,让它为我们所用。 下面就打开终端,开始吧。...如果你需要对变量进行赋值,只需要使用变量名称就可以了。但如果需要读取或者使用变量的值,需要在变量前面加上一个 $ 号。 更改 HOME 变量具有一定的风险。...自定义变量 当然,你也可以定义自己的变量。刚才我们看到的变量名称都是全大写的,实际上变量名称的定义还是比较灵活的。...在 bash 中运行程序的时候会生成一个子 shell,这个子 shell 和执行原程序的父 shell 并不是完全一样的,只是继承了父 shell 的部分内容,而且默认是不继承父 shell 中的变量的...首先定义一个变量: robots="R2D2 & C3PO" 然后执行: bash 现在是在 bash shell 中创建了一个子 shell。

66840

linux bash环境变量简单总结

HISTSIZE: 是指保存历史命令记录的条数 HOSTNAME: 是指主机的名称,许多应用程序如果要用到主机名的话,通常是从这个环境变量中来取得的。...三.Bash实现原理简介 bash使用GNU Readline库处理用户命令输入,Readline提供类似于vi或emacs的行编辑功能。 bash运行时的调度中心是其主控循环。...对于bash这个Shell程序来说,可以通过 变量名来访问相应的环境变量。 Linux 的环境变量具有继承性,即子shell 会继承父shell 的环境变量。...变量内容的设定和替换 一次变量置换: 变量没有值: echo ${a:=abc} //若a没有值,就送给a一个abc,作为它的值,这时a的值就永久是abc了,直到下次修改。...则可能会因此覆盖掉某些程序的一部分内存空间 从而轻易的获取该程序的控制权,若该程序是系统进程,则它将可能获取系统权限 shell中数组相关操作: —【注:shell中的数组不能做为export导出的对象,因此它仅不能作为环境变量

1.8K30

Bash变量赋值时报错command not found

/bin/bash STR = "Hello World" echo $STR 当我运行 bash test.sh 时,我会得到以下信息: test.sh: line 2: STR: command not...我在网上看过一些非常基础/初学者的 bash 脚本教程,这是他们如何声明变量的……所以我不确定我做错了什么。 我使用的是Ubuntu服务器 9.10。是的,bash 位于 /bin/bash。...解析器标记为变量赋值(命令名称之前的那些)和重定向的单词将被保存以供随后的处理。 2. 不是变量赋值或重定向的单词将被扩展。如果扩展后还有任何单词,第一个单词被用作命令名,其余的单词是参数。 3....在每个变量赋值中,'=' 后面的文本在赋值给变量之前会经历波浪号扩展、参数扩展、命令替换、算术扩展和引号删除。 可知在 STR = "foo" 中,STR 不是变量赋值。...相关阅读: 如何通过一个Bash定界符来分割一个字符串 Bash中单引号和双引号的区别 为什么Bash中的"["和"]"周围应该有空格

28020

如何在Bash中检查变量是否已设置

更多好文请关注↑ 问: 在 Bash 中如何知道变量是否已设置? 例如,我如何检查用户是否给函数提供了第一个参数? function a { # if $1 is set ?...var+x} ]; then echo "var is unset" else echo "var is set to '$var'" fi 其中 ${var+x} 是一种参数扩展表达式,当变量...其中不含单词分隔符,因此无需引号),要么不扩展任何内容),所以可以省略引号(即我们可以写作 然而,虽然引号可以安全地省略,这一点并非对所有人都显而易见(甚至对于编写这个关于引号解释的首位作者——也是一位资深 Bash...该方式使用了 Bash 手册中 Shell Parameter Expansion 章节中的 {parameter:+word} 形式,在省略冒号的情况下( {parameter+word} ),则仅测试参数是否存在...另外,如果使用的 Bash 版本为 4.0 及以上版本,则可使用 -v varname 来测试变量是否设置。

15710
领券