Questions tagged «variable»

变量是一个名称,如果正确地选择了具有符号含义的名称,则会包含一个或多个值。如果您的问题是特定于在shell脚本中使用变量的,请使用此标记(如果要询问编程语言中的变量,则可能应该在StackOverflow上询问)

2
如何在变量中存储管道(|)?
想法是将其用作...命令中的管道。例如:说有某种长路径必须反复输入,然后是管道和第二个程序,即 "directory1/directory2/direcotry3/file.dat | less -I " 我希望该部分存储在变量中,因此可以这样使用: r="directory1/directory2/direcotry3 \| less -I -p " $ cat path1/path2/$r <searchterm> 相反,我得到 cat: invalid option -- I Try `cat --help' for more information. ...表示管道显然无法正常工作。
12 bash  pipe  variable 

2
如何扩展波浪符号〜作为变量的一部分?
当我打开bash提示并键入: $ set -o xtrace $ x='~/someDirectory' + x='~/someDirectory' $ echo $x + echo '~/someDirectory' ~/someDirectory 我希望上面的第五条线会过去+ echo /home/myUsername/someDirectory。有没有办法做到这一点?在我最初的Bash脚本中,实际上是通过如下循环从输入文件中的数据填充变量x: while IFS= read line do params=($line) echo ${params[0]} done <"./someInputFile.txt" 不过,我得到了类似的结果,echo '~/someDirectory'而不是echo /home/myUsername/someDirectory。

2
为什么不能将变量用作设置环境变量的命令的前缀?
通常,可以通过为命令设置前缀来设置环境变量,如下所示: hello=hi bash -c 'echo $hello' 我也知道我们可以使用变量来替代命令调用的任何部分,如下所示: $ cmd=bash $ $cmd -c "echo hi" # equivalent to bash -c "echo hi" 我很惊讶地发现您不能使用变量来为设置环境变量的命令添加前缀。测试用例: $ prefix=hello=hi $ echo $prefix # prints hello=hi $ $prefix bash -c 'echo $hello' hello=hi: command not found 为什么不能使用变量设置环境变量?前缀部分是特殊的部分吗?我可以通过在前面使用eval使其工作,但是我仍然不明白为什么。我正在使用bash 4.4。

4
为什么heredoc中的JSON内容不可解析?
我有一个JSON片段。 以下内容不起作用: VALUE=<<PERSON { "type": "account", "customer_id": "1234", "customer_email": "jim@gmail.com" } PERSON echo -n "$VALUE" | python -m json.tool 结果是: JSON对象无法解码 对进行相同的操作jq,即 echo -n "$VALUE" | jq '.' 没有输出。 对于以下情况,存在相同的行为: VALUE=<<PERSON '{ "type": "account", "customer_id": "1234", "customer_email": "jim@gmail.com" }' PERSON echo -n "$VALUE" | python -m json.tool 响应: JSON对象无法解码 但是以下工作原理: …

2
如何使“本地”捕获退出代码?
在我的项目中,我有以下代码段: local output="$(bash "${1##*/}")" echo "$?" 由于local,这始终显示为零,但是,删除local会导致$?变量正确运行:这是假定从子shell退出代码。 我的问题是:如何在保留退出值的同时保持局部变量不变?

3
用变量名定义变量
这个脚本怎么了?我正在尝试定义A1 = 1,B1 = 1,C1 = 1 LIST="A B C" for x in $LIST do "$x"1=1 done 结果是: ./x.: line 7: A1=1: command not found ./x.: line 7: B1=1: command not found ./x.: line 7: C1=1: command not found

2
如何在单引号内使用变量
我有一个应用程序,它以嵌入在单引号中的双引号作为输入属性。以这个正确的命令为例: command -p 'cluster="cl1"' 为了使其自动化,我创建了一个bash文件$CLUSTER作为变量。我的命令应该如何?换句话说,我应该代替cl1放置什么? 请注意,如果我修改了上面的命令,它将不会被接受。例如:command -p "cluster=cl1"不被接受


4
如何POSIX-ly计算字符串变量中的行数?
我知道我可以在Bash中做到这一点: wc -l <<< "${string_variable}" 基本上,我发现的所有内容都涉及<<<Bash运算符。 但是在POSIX shell中,它<<<是未定义的,而且我几个小时都无法找到替代方法。我很确定有一个简单的解决方案,但是不幸的是,到目前为止我还没有找到它。

2
您能在这段bash代码中为我解释这三件事吗?
我有一个function在我的.bashrc文件。我知道它的作用,它可以增加X个目录cd 这里是: up() { local d="" limit=$1 for ((i=1 ; i <= limit ; i++)) do d=$d/.. done d=$(echo $d | sed 's/^\///') if [ -z "$d" ]; then d=.. fi cd $d } 但是您能为我解释这三件事吗? d=$d/.. sed 's/^\///' d=.. 为什么不这样做: up() { limit=$1 for ((i=1 ; i <= limit ; …


4
如何打印变量名称及其值?
有什么办法可以打印变量名称及其值? j=jjj k=kkk l=lll for i in j k l do .... done 预期输出(每个变量在单独的行上): j = jjj k = kkk l = lll 有人可以建议一种获得上述结果的方法吗?
10 bash  shell  variable 

2
初始化Bash变量-随需应变,建议或定义
在将脚本中的bash变量的值赋给实际值之前,在主代码之前或在函数中的局部变量之前初始化脚本中的bash变量的值是否有任何优点/缺点? 我需要做这样的事情吗? init() { name="" name=$1 } init "Mark" 是否存在使用垃圾值初始化变量(如果未初始化)以及对变量值产生负面影响的风险?
9 bash  variable 

3
“使”符号“可变”(后台处理)
我想知道是否有办法将&符放入变量中,并仍然使用它来将进程发送到后台。 这有效: BCKGRND=yes if [ "$BCKGRND" = "yes" ]; then sleep 5 & else sleep 5 fi 但是,仅用一条完成这五条线不是很酷吗?像这样: BCKGRND='&' sleep 5 ${BCKGRND} 但这是行不通的。如果未设置BCKGRND,则它可以工作-但是,如果设置了BCKGRND,则将其解释为文字'&'并输出错误。


By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.