linux - 设置变量时用括号括起来

标签 linux unix

为什么这个命令会破坏搜索路径?

PATH=($PATH:$HOME/bin)

PATH 看起来没有变化,但 shell 找不到命令。

输入错误

PATH=$PATH:$HOME/bin

可能与

混淆了
PATH=$(echo $PATH:$HOME/bin)

最佳答案

使用括号创建数组:

$ a=(x:y:z v:w:x)
$ echo ${a[0]}
x:y:z
$ echo ${a[1]}
v:w:x

在您的例子中,您创建了一个包含一个元素(整个路径)的数组。这不再被解释为搜索可执行文件的路径。此 PATH 必须是以冒号分隔的目录字符串,而不是数组。

关于linux - 设置变量时用括号括起来,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19680774/

相关文章:

linux - 如何在一行中过滤 shell 脚本中的多个扩展名?

c - 在 Linux 上用 C 语言使用 RAW Socket 发送组播

linux - 自动化 iSCSI 安装/卸载

java - Java 项目中的 Selenium Chromedriver 超时问题

linux - cp 命令在 azure devops 的构建管道中的 Bash 脚本中不起作用

unix - 使用 awk 删除重复项时忽略大小写

c - fork 没有在母亲身上显示 child 的 pid

linux - 我找到了一种使用 find -exec 将多个文件集中在一行中的方法,如 xargs,但我不确定它到底是如何工作的

c - 测量从用户空间到内核空间的延迟的最佳方法是什么?

c++ - 计算时间增量最快的 linux C 时间函数是什么?使用 clock_gettime 和 gettimeofday 发现性能不佳