标签: variable

Bash 中有变量值克隆函数吗?如果没有,为什么不呢?

在 PHP 中,可以通过以下方式将一个变量的变量值复制到另一个变量:

$copy = clone $original;
Run Code Online (Sandbox Code Playgroud)

这不是询问有关 PHP 的问题的地方,但我误解了为什么clone在那里添加这个词有帮助,即为什么不只写$copy = $original,也许与 Bash 的比较(如果适用)可以帮助我理解原因。

variable

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

为什么建议使用“printf -- <arguments>”而不是“echo <arguments>”?

在“Greg's Wiki”上的Bash Pitfalls中,我发现了以下引用:

事实上,echo这里使用该命令并不能绝对安全。-n例如,如果变量包含,echo将认为是一个选项,而不是要打印的数据。打印变量值的唯一绝对可靠的方法是使用printf

printf "%s\n" "$foo"
Run Code Online (Sandbox Code Playgroud)

但是当我输入:

var="-n Hello"
echo "$var"
Run Code Online (Sandbox Code Playgroud)

它工作正常并且不会解释-n为一个选项,所以我不明白为什么我引用的消息来源说我们需要使用它printf才能绝对安全?

shell-script echo variable

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

zsh 中的 some_variable 与 some-variable

为什么看似zsh明白要做什么some_variable=1 command,却又不明白some-variable=1 command?例如:$ fs_screen=1 mpv --fs-screen=${fs_screen} someFile.mp4工作正常,但$ fs-screen=1 mpv --fs-screen=${fs-screen} someFile.mp4结果是zsh: command not found: fs-screen=1

\n

我深入研究了 zsh 文档,发现了我认为的问题所在。摘自https://zsh.sourceforge.io/Doc/Release/Shell-Grammar.html#Precommand-Modifiers

\n
A simple command may be preceded by a precommand modifier, which will alter how the command is interpreted. These modifiers are shell builtin commands with the exception of nocorrect which is a reserved word.\n\n-\nThe command is executed with a \xe2\x80\x98-\xe2\x80\x99 prepended to its argv[0] string.\n
Run Code Online (Sandbox Code Playgroud)\n

但是,我在任何地方都找不到有关此内容的更多信息。它的目的是什么,是否可以禁用它,以便我可以使用 …

zsh environment-variables shell-builtin variable

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

未找到 LD_LIBRARY_PATH - CentOS

我正在尝试运行以下两个命令...

LD_LIBRARY_PATH =/opt/oracle/instantclient_12_1
导出 LD_LIBRARY_PATH

但是当我运行第一个命令时出现错误

-bash: LD_LIBRARY_PATH: command not found
Run Code Online (Sandbox Code Playgroud)

我的操作系统数据如下,

  • 操作系统版本 = CentOS 5.9 版(最终版)
  • 平台数据 = 2.6.18-348.18.1.el5 x86_64 x86_64 GNU/Linux

我已经以普通用户和 sudo 的身份尝试过,尝试仅设置 LIBRARY_PATH 时也会遇到相同的错误。这适用于 ubuntu 我做错了什么?

shell bash variable

0
推荐指数
1
解决办法
3807
查看次数

为什么在使用 Bash 的内置命令历史功能重新运行包含变量的先前命令时必须小心?

我知道!!重新运行命令,但是如果我重新运行一个在命令中有变量的命令,究竟会发生什么?

bash command-history function variable

0
推荐指数
1
解决办法
122
查看次数

设置我的变量,我是使用点符号还是~?

我所有的 Hadoop 配置文件都位于以下位置:

./.linuxbrew/Cellar/hadoop/2.7.3/libexec/etc/hadoop/"
Run Code Online (Sandbox Code Playgroud)

要设置我的 HADOOP_HOME 变量,我是使用点符号还是 ~?

HADOOP_HOME = "./.linuxbrew/Cellar/hadoop/2.7.3/libexec/etc/hadoop/"
Run Code Online (Sandbox Code Playgroud)

或者

HADOOP_HOME = " ~/.linuxbrew/Cellar/hadoop/2.7.3/libexec/etc/hadoop/"
Run Code Online (Sandbox Code Playgroud)

environment-variables variable

0
推荐指数
1
解决办法
59
查看次数

使用 cat 检查文件中是否存在字符串 | 格雷普

大家好

目的:检查文件中是否存在字符串并相应地运行操作

if [ -z 'sudo cat /etc/sudoers | grep "$USER ALL=(ALL) NOPASSWD:ALL"' ]; echo "no output, cont." || echo "line exists, skipping"
Run Code Online (Sandbox Code Playgroud)

在行存在和不存在的情况下,输出始终显示“行存在,跳过”。

将输出添加到变量中,例如 x,用变量替换 if 语句中的行会产生正确的输出,

如何“跳过”可变路由并直接运行命令?

grep scripting shell-script variable

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

当作为变量传递时,sed 将无法识别数字

这个表达:

FN=27
LN=145
cat $FILENAME | sed -n $FN,$LNp
Run Code Online (Sandbox Code Playgroud)

因以下错误而失败:“sed:-e 表达式 #1,字符 3:意外的‘,’”但是当我使用实际数字时,我得到了预期的结果。没有嵌入特殊字符,也没有尾随或前导空格

cat $FILENAME | sed -n 27,145p
Run Code Online (Sandbox Code Playgroud)

这里发生了什么?

sed variable

0
推荐指数
1
解决办法
78
查看次数

更改新创建的 RPM 的存储位置

对创建 RPM 还很陌生,但我已经掌握了基础知识。我正在编写基础脚本,并且有一个要求,即我不能接受将存储新创建的 RPM 的默认位置。

通常,创建的 RPM 存储在 ~/rpmbuild/RPMS 中

我需要将它们保存到 /centralStorage/Some/New/Location。

RPM 构建器正在寻找什么变量来知道将新创建的 RPM 保存在哪里?我似乎无法在文档中找到如何手动更改它。

linux rpm rhel variable

0
推荐指数
1
解决办法
239
查看次数

新行和 bash 变量

我有一个文本文件(或管道输出,在这里无关紧要)

memcached.uptime 1061374
memcached.curr_connections 480
memcached.cmd_get 478962548
memcached.cmd_set 17641364
memcached.cmd_flush 0
Run Code Online (Sandbox Code Playgroud)

如果我使用命令,cat test.txt | while read i; do echo $i; done它会产生非常预期的输出:

memcached.uptime 1061374
memcached.curr_connections 480
memcached.cmd_get 478962548
etc
Run Code Online (Sandbox Code Playgroud)

但是如果我循环使用,for i in $(cat test.txt); do echo $i; done我会看到不同的东西:

memcached.uptime
1061374
memcached.curr_connections
480
memcached.cmd_get
478962548
etc
Run Code Online (Sandbox Code Playgroud)

问题是:为什么???

bash newlines variable

0
推荐指数
1
解决办法
353
查看次数