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

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

问题 我想从一个 bash 脚本中运行一个包含单引号且单引号内有其他命令和一个变量的命令。 例如:repo forall -c '.......$variable' 在这种格式中,美元符号 $ 被转义,变量没有被展开。 我尝试了以下几种变化形式,但它们都被拒绝了: repo forall -c '...."...$variable "'" 如果我将变量的值直接替换进去,命令就能正常执行。 请告诉我哪里出了错。 回答 在单引号内,所有内容都会被原样保留,无一例外。...正如你所能验证的,上面每一行对 shell 而言都是一个单独的单词。引号(根据具体情况使用单引号或双引号)并非用来分隔单词,而是用于禁用对多种特殊字符的解释,比如空格、$、;等。...通常情况下,可以在命令中设置占位符,并将命令与变量一起提供,以便调用者能从调用参数列表中接收它们 例如,以下做法非常不安全。

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

    Linux Shell 中需要转义的字符

    本文整理 Linux Shell 中的转义字符。 在 Linux Shell 中,有很多字符是有特殊含义的,如果期望把这个字符当作普通字符来处理,需要经过 \ 的转义。...在双引号中即可变普通字符的特殊字符 ` ` * 空格 ‘\ ` 这是转义空格。如果路径中包含空格,那么使用 \ 转义可以避免路径被分割成 Shell 的两个参数。...如果希望保持 * 的原意,那么将其包裹在引号内,或者使用转义 \*。 井号 # 表示注释。 换行符 在引号中,也可以直接换行。这样换行符就是字符串的一部分。...反引号 ` 跟引号一样的作用。 在引号中也需要转义。 美元符 \$ 在 Linux Shell 中,这是变量的引用。例如 ${x} 就是引用 x 变量。...在引号中也需要转义。 任意字符 任意字符也可以使用 \ 转义,虽然没用,但也是一个特性。

    1.7K10

    【shell脚本】$ 在shell脚本中的使用

    shell脚本中 '$' 与不同的符号搭配其表示的意义也会不同 特殊标志符 含义 $0 当前脚本的文件名 $n 传递给脚本或函数的参数。n 是一个数字,表示第几个参数。...例如,第一个参数是$1,第二个参数是$2 $# 传递给脚本或函数的参数个数 $* 传递给脚本或函数的所有参数 $@ 传递给脚本或函数的所有参数 $?...上个命令的退出状态 $$ 当前Shell进程ID $() 与 `(反引号) 一样用来命令替换使用 ${} 引用变量划分出边界 注释:$* 和 $@ 都表示传递给函数或脚本的所有参数,不被双引号(" "...)包含时,都以"$1" "$2" … "$n" 的形式输出所有参数。...但是当它们被双引号(" ")包含时,"$*" 会将所有的参数作为一个整体,以"$1 $2 … $n"的形式输出所有参数;"$@" 会将各个参数分开,以"$1" "$2" … "$n" 的形式输出所有参数

    6.2K20

    Shell-alias在Shell脚本中的使用

    概述 在shell中开启alias 实际操作 概述 众所周知,shell脚本使用的是非交互式方式,在非交互式模式下alias扩展功能默认是关闭的,此时虽然可以定义alias别名,但是shell不会将alias...别名扩展成对应的命令,而是将alias别名本身当作命令执行,如果shell内置命令和PATH中均没有与alias别名同名的命令,则shell会找不到指定的命令。...---- 在shell中开启alias 使用shell内置命令shopt命令来开启alias扩展选项。...默认是打开的,在非交互式模式下是关闭的,但可以用可shopt来将其开启 shopt -s expand_aliases ---- 实际操作 在我们的项目中某个模块的双机启动脚本(root用户下操作),...项目启动中会依赖一些环境变量,所以双机启动脚本中需要显式的引入.bash_profile文件。 所以我们将 开启alias的命令放在 .bash_profile中。

    2.3K10

    shell语法

    (全局变量):子进程可以访问的变量 自定义变量转环境变量 export 变量名 declare -x 变量名 此时可以在子进程中使用变量 使用bash 使用bash会将原进程...,也可以使用双引号,也可以不使用引号 单引号和双引号的区别(不加引号和双引号相同) 单引号中的内容会原样输出,不会执行,不会取变量(即不会转义),即没有使用&符号取值 双引号中的内容可以执行,可以取变量...查看自己开了多少进程 top可以查看 按下退出 文件参数变量 在执行shell脚本时可以想脚本传递参数,$1时第一个参数,$2是第二个参数…,特殊的是$0是文件名(包含路径) $#:文件传入参数的个数...-x filename:当filename不可执行时,返回true 判断符号 【】和test用法几乎一样,更常用于if语句中 []内的每一项都要用空格隔开 中括号内的变量,最好用双引号括起来(为了防止当变量中有空格时...&取值出现错误(too many arguments)) 中括号内的常熟,最好用单或双引号括起来 判断语句 if then语句,(类似与c++中的if-else语句)if后面跟的是命令,不是值 if expr

    12810

    『Jenkins』在Jenkins中实现环境变量的使用

    提供最佳实践和实例分析,帮助读者在实际项目中使用环境变量。 Jenkins环境变量的基本概念 在Jenkins中,环境变量主要分为两类:系统环境变量和自定义环境变量。...在“Properties Content”字段中,输入自定义的环境变量。...在Jenkinsfile中,环境变量的使用可以让构建过程更加灵活和动态。 3.1 定义和使用环境变量 在Jenkinsfile中,可以使用environment块来定义环境变量。...在构建脚本中使用环境变量 除了在Jenkinsfile中使用环境变量,我们还可以在构建脚本中使用它们。例如,在执行Shell或Batch脚本时,环境变量可以传递给脚本进行动态控制。...在Jenkins中,环境变量是实现灵活配置和自动化任务的重要工具。

    18510

    Shell 参数扩展及各类括号在 Shell 编程中的应用

    及其右边的字符串:/dir1/dir2/dir3/my Tips: 记忆的方法为: # 是去掉左边(在键盘上 # 在 $ 之左边) % 是去掉右边(在键盘上 % 在 $ 之右边) 单一符号是最小匹配...echo ${HI^,^} # HellO 看来是不行的×_× 2、各类括号在 shell/bash 编程中的应用 上面应该见识到了 shell 中大括号的强大功能,其实 shell 下有很多种括号,不像其它高级语言括号只起到语法和意义的作用...,而 shell 下的每种括号除了语法、语义的作用之外,还对 shell 编程起到了功能上的扩展。...2.1 () 在子shell中运行 (a=1);echo $a,结果是空,因为a=1不是在当前shell中运行的(a=1);(echo $a)也是空的。...mod=viewthread&tid=218853&page=7# [3] shell/bash编程中各类括号的应用 http://hi.baidu.com/leejun_2005/item/6f9eb7345e5f4f302f20c453

    1.6K70

    JMeter在Linux系统中的环境变量配置

    环境变量配置 为指定用户配置环境变量,是通过用户目录下的用户配置文件{.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

    说说Shell在代码重构中的应用

    ,所以今天我要说说Shell在代码重构中的应用。...先来个简单的,假设我们要把PHP文件中的foo_bar全都替换成fooBar,那么可以如下: 方法一,使用Sed: shell> find /path -name "*.php" -print0 | xargs...> 在动手前,我们需要先摸摸底,了解一下大概的情况: shell> grep -I -ri includeClass /path | more 其中,grep命令的参数乍一看不好记,不过只要按照我说的方法记...另外程序中是通过生成一个唯一的临时文件来完成保存的。...提醒:直接覆盖原始文件有时候并不合适,毕竟可能有没考虑周详的地方,使用SVN的话就不会有这样的顾虑了,因为即便覆盖了原始文件,也可以在提交前通过“svn diff”命令来检查对错,就算是提交了,也可以恢复到以前的版本

    63740

    继续学习Shell脚本(详细)

    用法: unset variable_name 变量类型 运行shell时,会同时存在三种变量: 1) 局部变量 局部变量在脚本或命令中定义,仅在当前shell实例中有效,其他shell启动的程序不能访问局部变量...2) 环境变量 所有的程序,包括shell启动的程序,都能访问环境变量,有些程序需要环境变量来保证其正常运行。必要的时候shell脚本也可以定义环境变量。...二、Shell中的替换 转义符: 在echo中可以用于的转义符有: ?...命令替换: 它的意思就是说我们把一个命令的输出赋值给一个变量,方法为把命令用反引号(在Esc下方)引起来....在expr中的乖号为:\* 2. 在 expr中的 表达式与运算符之间要有空格,否则错误; 3. 在[ a == b ]与[ a !

    63410

    Shell脚本学习1

    :是Shell的一个内部指令,用于在屏幕上打印出指定的字符串 echo arg #输出arg变量 echo -e arg #执行arg里的转义字符。...echo加了-e默认会换行 echo arg > myfile #显示结果重定向至文件,会生成myfile文件 注意: echo后单引号和双引号作用是不同的 单引号不能转义里面的字符,双引号可有可无,单引号主要用在原样输出中...使用 unset 命令可以删除变量: unset variable_name 说明:变量被删除后不能再次使用,unset 命令不能删除只读变量 变量类型 三种变量: 局部变量 :局部变量在脚本或命令中定义...环境变量 :所有的程序,包括shell启动的程序,都能访问环境变量,有些程序需要环境变量来保证其正常运行。必要的时候shell脚本也可以定义环境变量。...shell变量 :shell变量是由shell程序设置的特殊变量。shell变量中有一部分是环境变量,有一部分是局部变量,这些变量保证了shell的正常运行。

    32020

    Shell脚本攻略01-简介终端打印

    概述  终端打印  玩转变量与环境变量  使用函数填加环境变量  通过shell进行数学运算  玩转文件描述符与重定向  数组和关联数组  使用别名  获取终端信息...---- 终端打印 终端是交互式工具,用户可以通过它与shell环境进行交互。 在终端中打印文本是绝大多数shell脚本和工具日常需要执行的基本任务。...,那就不要将其放入双引号中,或者你可以在其之前加上个特殊的转义字符(\)将!转义,就像这样: [root@entel1 ~]# echo hello world ! hello world !...#将转义字符放在前面 hello world \! 每种方法的副作用:  使用不带引号的echo时,没法在所要显示的文本中使用分号(;),因为分号在Bash shell 中被用作命令定界符。...在echo中转义换行符 在默认情况下, echo会将一个换行符追加到输出文本的尾部。可以使用选项-n来忽略结尾的换行符。 echo同样接受双引号字符串内的转义序列作为参数。

    2.5K20

    在 JavaScript 中优雅的提取循环内的数据

    翻译:疯狂的技术宅 http://2ality.com/2018/04/extracting-loops.html 在本文中,我们将介绍两种提取循环内数据的方法:内部迭代和外部迭代。...它是 for-of 循环和递归的组合(递归调用在 B 行)。 如果你发现循环内的某些数据(迭代文件)有用,但又不想记录它,那应该怎么办?...内部迭代 提取循环内数据的第一个方法是内部迭代: 1const fs = require('fs'); 2const path = require('path'); 3 4function logFiles...请注意,在生成器中,必须通过 yield* 进行递归调用(第A行):如果只调用 logFiles() 那么它会返回一个iterable。...但我们想要的是在该 iterable 中 yield 每个项目。这就是 yield* 的作用。

    3.7K20

    Shell 语法

    运行shell时,会同时存在三种变量: 1) 局部变量 局部变量在脚本或命令中定义,仅在当前shell实例中有效, 其他shell启动的程序不能访问局部变量。...2) 环境变量 所有的程序,包括shell启动的程序,都能访问环境变量, 有些程序需要环境变量来保证其正常运行。必要的时候shell脚本也可以定义环境变量。...3) shell变量 shell变量是由shell程序设置的特殊变量。 shell变量中有一部分是环境变量,有一部分是局部变量,这些变量保证了shell的正常运行。 6....定义字符串: 单引号 str='this is a string' 单引号字符串的限制: 单引号里的任何字符都会原样输出,单引号字符串中的变量是无效的; 单引号字串中不能出现单引号(对单引号使用转义符后也不行...双引号 your_name='qinjx' str="Hello, I know your are $your_name! " 双引号的优点: 双引号里可以有变量 双引号里可以出现转义字符 8.

    65010

    Shell特殊字符

    Shell常见特殊字符可以分为以下几类:特殊变量,替换符,转义字符,字符串符(引号),功能符,运算符。...26 ${##} 模式匹配截断,用法${variable##pattern} 这种模式时,shell在variable中查找给定的模式pattern,如果是存在,就从命令行把variable中的内容去掉左边最长的匹配模式...单引号括住的内容,被视为常量字符串,引号内的禁止变量扩展,并且单引号字符串中不能出现单引号(对单引号使用转义符后也不行) echo '$PATH';#输出$PATH 46 “” 两个双引号。...双引号包围的内容可以允许变量扩展,可以包含双引号,但需要转义。 echo '$PATH;#输出环境变量PATH的内容 2.5功能符 功能符号,我在这里把它分为两类。...用法比较多,主要有:(1)可做while死循环的条件;(2)占位符,if某一分支什么都不做的时候;(3)域分隔符,比如环境变量$PATH中,或者passwd中,都有冒号的作为域分隔符的存在;(4)清空文件

    5.2K10
    领券