标签: variable

如何将管道( | )存储在变量中?

这个想法是将它用作...命令中的管道。例如:假设有某种很长的路径必须一次又一次地重新输入,然后是管道和第二个程序,即

"directory1/directory2/direcotry3/file.dat | less -I "
Run Code Online (Sandbox Code Playgroud)

我希望将该部分存储在一个变量中,因此可以像这样使用它:

r="directory1/directory2/direcotry3 \| less -I -p "
$ cat path1/path2/$r <searchterm>
Run Code Online (Sandbox Code Playgroud)

相反,我得到

cat: invalid option -- I
Try `cat --help' for more information.
Run Code Online (Sandbox Code Playgroud)

...意味着管道显然没有工作。

bash pipe variable

12
推荐指数
2
解决办法
2万
查看次数

在 bash 或 zsh 中序列化 shell 变量

有没有办法序列化shell变量?假设我有一个变量$VAR,并且我希望能够将它保存到文件或其他内容中,然后稍后再读回以获取相同的值?

有没有一种便携的方式来做到这一点?(我不这么认为)

有没有办法在 bash 或 zsh 中做到这一点?

shell bash zsh variable

12
推荐指数
1
解决办法
6247
查看次数

如何在单引号内使用变量

我有一个应用程序,它以嵌入在单引号中的双引号作为输入属性。以这个正确的命令为例:

command -p 'cluster="cl1"'
Run Code Online (Sandbox Code Playgroud)

为了使其自动化,我创建了一个$CLUSTER用作变量的 bash 文件。我的命令应该如何?换句话说,我应该放什么来代替 cl1?

请注意,如果我修改了上面的命令,它将不被接受。例如:command -p "cluster=cl1"不被接受

shell quoting variable

12
推荐指数
1
解决办法
5万
查看次数

用变量名定义变量

这个脚本有什么问题?我试图定义 A1=1, B1=1, C1=1

LIST="A B C"
for x in $LIST
do
    "$x"1=1
done
Run Code Online (Sandbox Code Playgroud)

结果是:

./x.: line 7: A1=1: command not found
./x.: line 7: B1=1: command not found
./x.: line 7: C1=1: command not found
Run Code Online (Sandbox Code Playgroud)

shell-script variable

12
推荐指数
1
解决办法
2万
查看次数

如何让`local` 捕获退出代码?

在我的项目中,我有以下代码段:

local output="$(bash "${1##*/}")"
echo "$?"
Run Code Online (Sandbox Code Playgroud)

这总是打印零,因为local,但是,删除local会导致$?变量正确运行:假设子shell 的退出代码。

我的问题是:如何在捕获退出值的同时保持这个变量本地化?

bash variable exit-status

12
推荐指数
2
解决办法
1473
查看次数

当我在命令前加上“一次性变量赋值”时,为什么 bash 不扩展这个变量

如果我运行此 bash 命令并为语句添加前缀,则该变量fruit应该存在,但仅在此命令的持续时间内:

$ fruit=apple echo $fruit

$
Run Code Online (Sandbox Code Playgroud)

结果是一个空行。为什么?

引用通配符对此问题的评论:

参数扩展由shell完成,“fruit”变量不是shell变量;它只是“echo”命令环境中的一个环境变量

环境变量仍然是一个变量,所以这肯定对 echo 命令仍然可用吗?

bash variable

12
推荐指数
2
解决办法
3101
查看次数

如何打印变量名称及其值?

有什么方法可以打印变量名称及其值吗?

j=jjj
k=kkk
l=lll

for i in j k l
do
    ....
done
Run Code Online (Sandbox Code Playgroud)

预期输出(每个变量在单独的行上):

j = jjj 
k = kkk
l = lll
Run Code Online (Sandbox Code Playgroud)

任何人都可以提出一种获得上述结果的方法吗?

shell bash variable

12
推荐指数
3
解决办法
2万
查看次数

如何在 Bash 中导出大量变量?

我使用 Bash 4.3.48(1) 并且.sh在 shebang 下有一个包含大约 20 个变量的文件。该文件仅包含变量。

这是模式:

x="1"
y="2"
...
Run Code Online (Sandbox Code Playgroud)

我需要以DRY方式导出所有这些变量:例如,一个export对所有变量,而不是说 20export对 20 个变量。

该文件中执行此操作的最优雅方式(最短、最有效)是什么?

一个for循环?一个array?也许比这些更简单(某种集合糖语法)?

environment-variables variable syntax

12
推荐指数
1
解决办法
4740
查看次数

获取给定文件的父目录

假设file存储一个非目录文件的路径名。

我怎样才能得到它的父目录?

为什么通过附加/..到其值的以下方式不起作用

$ cd $file/..   
cd: ./Tools/build.bat/..: No such file or directory
Run Code Online (Sandbox Code Playgroud)

谢谢。

shell directory filenames variable

11
推荐指数
3
解决办法
3万
查看次数

如果该变量为空/未分配/错误,如何为 BASH 变量赋值?

我正在寻找与此 JS 任务等效的内容:

FOO = FOO || "I must have been falsey!";
Run Code Online (Sandbox Code Playgroud)

谢谢!

bash variable

11
推荐指数
2
解决办法
1万
查看次数