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

Bash命令中展开单引号内的变量

问题 我想从一个 bash 脚本中运行一个包含单引号且单引号内有其他命令和一个变量的命令。 例如:repo forall -c '.......$variable "'" 如果我将变量的值直接替换进去,命令就能正常执行。 请告诉我哪里出了错。 回答 引号内,所有内容都会被原样保留,无一例外。...引号(根据具体情况使用单引号或双引号)并非用来分隔单词,而是用于禁用对多种特殊字符的解释,比如空格、$、;等。 不要拼接由 Shell 解析的字符串 你应绝对避免通过拼接变量来构建 Shell 命令。...通常情况下,可以命令中设置占位符,并将命令与变量一起提供,以便调用者能从调用参数列表中接收它们 例如,以下做法非常不安全。...使用位置参数会更好——这样是安全的,不会被利用: script='echo "arg 1 is: $1"' /bin/sh -c "$script" -- "$myvar" 注意在给 script 变量赋值时使用了单引号

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

    IFS变量对加双引号和不加双引号变量的区别对待

    IFS对待未加双引号变量 比如在 bash shell 中输入以下代码: IFS=: _str_="hello:world" for i in $_str_; do echo $i; done 会得到以下结果...: hello world 原因是引用字符串变量 _str_ 没有加双引号时,Shell for 语句中根据 IFS 变量将字符串 _str_ 进行切割,切割成很多个字符串,然后逐个 echo 3...IFS对待加双引号变量 Shell 中输入以下代码: IFS=: _str_="hello:world" for i in "$_str_"; do echo $i; done 会得到以下结果:...hello world 原因是引用字符串变量 _str_ 加了双引号时,表示将其当作一个整体来处理,IFS 不会起作用,所以上述 for 循环只会循环一次。...然后 echo i 的时候由于 所以可知, bash shell 中输入以下代码: IFS=: _str_="hello:world" for i in "$_str_"; do echo "$i"

    3.4K20

    详解Linux中关于引号的那些事

    本文详细的给大家介绍了关于Linux引号的相关内容,分享出来供大家参考学习,下面来一起看看详细的介绍: 引号 我们将把编写脚本的事情暂时搁在一边,然后来讨论一些,我们一直在用的,但是没有解释的东西。...引号在这一节里面,我们会讲述引号引号有两个作用: 控制字符替换 和 执行将单词包含在一起的功能 我们已经使用过引号我们的脚本里面,将文本信息赋值给常量的赋值操作就使用了引号: ?...单引号和双引号 shell解释器可以识别双引号和单引号。 下面的复制表达式效果是等价的: ? 然而,引号和单引号之间存在一个重要的差别。 单引号字符替换方面有限制。...正如我们在上一节所看到的内容一样,你可以将一个变量放在双引号里面,而shell解释器依然会对变量执行字符替换的操作。 我们可以通过使用echo命令来查看这种效果: ?...如果我们将上述的双引号改为单引号,那么,行为将会改变: ? 双引号并没有限制—以”$”开头的变量的字符替换,不过,它的确对通配符的扩展效果进行了限制。 比如,下面这个例子: ?

    3.2K61

    Linux ——变量

    变量:环境变量、状态变量、位置参数变量、自定义变量,调用变量时,要在变量前面加一个 $ 符号echo ①打印字符串 ②打印变量的值,变量调用要加 $环境变量:用于存储有关shell会话和工作环境的系统变量状态变量...:用于记录命令的运行结果位置参数变量:用于向命令或程序脚本中传递信息1 自定义变量:由用户自行定义的变量,可用于用户编写的脚本,多个命令间的值传递等(注意:=前后不要有空格)a=geneecho aecho...$aecho 'this is a $a' #''里面的变量不会被解释echo "this is a $a" # “”里面的变量被解释2 环境变量:用于存储有关shell会话和工作环境的系统变量常见环境变量...输入命令时Linux会去查找PATH里面记录的路径,如果命令存在某一个路径中,就可以成功调用。使用的常见的命令都在提供的路径中,这些路径就保存在PATH变量中。...作用:这个变量代表命令行中所有的参数,把所有的参数看成一个整体$@ 作用:这个变量也代表命令行中所有的参数,不过 $@ 把每个参数区别对待$# 作用:这个变量代表命令行中所有参数的个数

    2.5K20

    exportlinux中用法_设置环境变量命令

    ✨ 因为一个变量创建时,它不会自动的被它之后创建的shell进程所知;这时,可用export命令向后面的shell传递变量的值。...export命令用于将shell变量输出为环境变量,或者将shell函数输出为环境变量。 ▚ 01 export命令 ---- export命令可用于显示或设置环境变量。...首先,打开.bashrc文件: $ vim ~/.bashrc 然后,该文件中,添加如下内容: export PATH=$PATH:/home/dabai/test/bin 最后,保存并退出;再执行如下命令...首先,打开profile文件: # vim /etc/profile 然后,该文件中,添加如下内容: export PATH=$PATH:/home/dabai/test/bin 最后,保存并退出...;再执行如下命令,以使修改的环境变量立即生效: $ source /etc/profile 参考博客 Linux export命令 | 菜鸟教程 (runoob.com) Linux 命令详解(一)export

    1.3K10

    JMeterLinux系统中的环境变量配置

    环境变量配置 为指定用户配置环境变量,是通过用户目录下的用户配置文件{.bash_profile}实现的,此文件为隐藏文件,可通过 ll -al 查看。...将JMeter的环境变量配置文件中,即可实现指定用户的环境配置。...jorphan.jar:$JMETER_HOME/lib/logkit-2.0.jar:$CLASSPATH export PATH=$JMETER_HOME/bin:$PATH:$HOME/bin 为所有用户配置环境变量...,是通过修改系统变量配置实现的,添加的内容同指定用户的一致,只需要在配置时注意原有环境变量的引用即可 $ vi /etc/profile #修改内容同以上用户环境变量配置 修改配置文件后,执行如下命令使配置生效...: # 指定用户: $ source ~/.bash_profile # 系统变量: $ source /etc/profile 验证: $ jmeter --version #输出信息中包含以下内容即配置成功

    3.6K30

    Linux 查看环境变量_linux修改环境变量顺序

    一、Linux变量种类 按变量的生存周期来划分,Linux变量可分为两类: 1、永久的:需要修改配置文件,变量永久生效。...2、临时的:使用export命令声明即可,变量关闭shell时失效。...二、设置变量的三种方法 1、/etc/profile文件中添加变量【对所有用户生效(永久的)】 用VI文件/etc/profile文件中增加变量,该变量将会对Linux下所有用户有效,并且是...3、直接运行export命令定义变量【只对当前shell(BASH)有效(临时的)】 shell的命令行下直接使用[export 变量名=变量值] 定义变量,该变量只在当前的..."[4]="release"[5]="i386-redhat-linux-gnu") BASH_VERSION='2.05b.0(1)-release' COLORS=/etc/DIR_COLORS.xterm

    24.5K21

    Linux 查看环境变量_linux修改jdk环境变量

    Linux变量种类 按变量的生存周期来划分,Linux变量可分为两类: 1 永久的:需要修改配置文件,变量永久生效。 2 临时的:使用export命令声明即可,变量关闭shell时失效。...设置变量的三种方法 1 /etc/profile文件中添加变量【对所有用户生效(永久的)】 用VI文件/etc/profile文件中增加变量,该变量将会对Linux下所有用户有效,并且是“永久的”。...3 直接运行export命令定义变量【只对当前shell(BASH)有效(临时的)】 shell的命令行下直接使用[export 变量名=变量值] 定义变量, 该变量只在当前的shell(BASH)或其子...环境变量的查看 1 使用echo命令查看单个环境变量。例如: echo $PATH 2 使用env查看所有环境变量。例如: env 3 使用set查看所有本地定义的环境变量。...使用unset删除指定的环境变量 set可以设置某个环境变量的值。清除环境变量的值用unset命令。如果未指定值,则该变量值将被设为NULL。

    10K20

    Linux 查看环境变量_Linux怎么设置环境变量

    接下来,讲一讲环境变量的相关知识点,既然提到了环境变量,那么我当前的环境里有多少默认的环境变量呢?关于这个问题,我教你两个命令就可以了,并且这两个命令一个比一个牛?...,可以通过这个随机数文件相关的变量($RANDOM)来随机取得随机数值 二、用export查看环境变量 通过实际操作可以看出,这个命令的显示结果和env是没有区别的,不过export还有其他的功能...export这个命令最大的功能就在于将自定义变量变成环境变量,使用方式为:export 变量名称 看到这里你可能会问这个功能干嘛用呢?...是这样子的,大家可能都知道父进程和子进程相关的知识,重点就在于你父进程中定义的自定义变量是不被子进程承认的,简单来说进入子进程之后就看不到了父进程中定义的自定义变量。...三、用set观察所有的变量 bash可不只有环境变量,还有一些与bash操作界面有关的变量,以及用户自己定义的变量存在,那么这些变量如何观察?

    20.6K40

    Linux进程——Linux环境变量

    前言:结束完上一篇的命令行参数时,我们简单的了解了一下Linux中的环境变量PATH,而环境变量不只有PATH,关于更多环境变量的知识我们将在本篇展开!...Linux系统中时,默认的目录) PWD : 记录当前路径,pwd就是调用了PWD环境变量 拓展:我们登录xshell的时候系统其实会做以下操作: 输入用户名,密码 认证 形成环境变量...根据用户名,初始化HOME=/root,HOME=/home/… cd $HOME Linux中环境变量有很多,我们可以使用指令来查看所有环境变量 指令:env 系统中会存在大量的环境变量...获取环境变量的方法 Linux我们有很多种方法能够过去环境变量,这里我们简单介绍三种!...本地变量与环境变量 Linux中,我们可以bash中直接定义环境变量 指令:变量名=内容 但是当我们环境变量表里获取我们自定义的变量时,是获取不了的。

    9210

    linux如何设置环境变量_linux用户环境变量

    linux fvwm作用 FVWM窗口管理器最早是对TWM的修改,可以追溯到1993年。经过几年的迭代,出现了一个可高度自定义的环境,其中可以配置任何行为,动作或事件。...尽管FVWM安装后立即可用,但其默认发行版仅提供绝对的最低配置。 这是启动自己的自定义桌面环境的良好基础,但是,如果您只想将其用作桌面,则可能要安装由另一个用户分发的完整配置。...我尝试了FVWM-Crystal ,这是一个具有一些常见Linux桌面约定的现代主题。 从Linux发行版的软件存储库中安装要尝试的FVWM发行版。...翻译自: https://opensource.com/article/19/12/fvwm-linux-desktop linux fvwm作用 版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人

    44.5K40

    Linux 查看环境变量_linux查看环境变量env

    Linux设置和查看环境变量 环境变量,简要的说,就是指定一个目录,运行软件的时候,相关的程序将会按照该目录寻找相关文件。...linux系统下,如果你下载并安装了应用程序,很有可能在键入它的名称时出现“command not found”的提示内容。如果每次都到安装目标文件夹内,找到可执行文件来进行操作就太繁琐了。...这涉及到环境变量 PATH 的设置问题,而 PATH的设置也是linux下定制环境变量的一个组成部分。...linux 查看环境变量与设置环境变量使用过程中很常见,本文整理了一些常用的与环境变量相关的命令。...一、设置变量的三种方法 1、/etc/profile文件中添加变量【对所有用户生效(永久的)】 用VI文件/etc/profile文件中增加变量,该变量将会对Linux下所有用户有效

    35.9K30

    Linux:环境变量

    ——> 因为环境变量PATH,他是Linux系统指令搜索路径,用echo  $PATH(需要加)可查看系统能够找到的路径 ,其中路径以 “ :”为分隔符  (比如pwd能直接使用就是因为/usr/bin...路径PATH变量中) 如果我们用自己编译的程序,就会显示command not found ,意思就是xshell帮我们找过了,只是他找不到而已  问题3:如果我想让自己写的程序像指令一样去使用,有什么办法呢...——>(1)思路1:比如/usr/bin路径PATH变量里,那我们就把自己写的程序放到该路径下即可 (2)思路2:我当前的程序无法使用时因为我的工作目录不在系统的指令搜索路径内,所以我们把当前的工作目录加入到...其实本质上来说就是main函数也是被别人调用的,所以他调用的时候就会在底层进行相关的条件编译(也就是对你的参数做检查),不同的参数就走不同的方向 1.4.3 环境变量相关的参数 其实还有一个参数  char...环境变量(environment variables)一般是指在操作系统中用来指定操作系统运行环境的一些参数,通常具有全局属性,并且一般来讲都有其特殊的用途(比如我们在编写C/C++代码的时候,链接的时候

    7510
    领券