Bash 巴什,背部抽搐或佩伦,我可以';甚至可以调试其中最基本的&x2026;

Bash 巴什,背部抽搐或佩伦,我可以';甚至可以调试其中最基本的&x2026;,bash,variables,Bash,Variables,以上将输出/用户/当前登录用户名/下载 然而,我希望在变量中使用Parens“(“or”)”,有时我可以让它工作,但在其他变量中不行;例如,我在双引号中设置了一个设置,不确定single和none之间的差异,dir_to_clean的值以及上面的代码是否可以工作,shell将cd放在它需要的地方,但我更希望cd$(一些变量路径) 如果有人能给我一个最低价,我将不胜感激 谢谢。$(X)表示“运行命令X并替换其输出”。它与变量无关 ${X}表示“替换变量X的值” 这是两个完全不同的操作,因此它们的语

以上将输出/用户/当前登录用户名/下载

然而,我希望在变量中使用Parens“(“or”)”,有时我可以让它工作,但在其他变量中不行;例如,我在双引号中设置了一个设置,不确定single和none之间的差异,dir_to_clean的值以及上面的代码是否可以工作,shell将
cd
放在它需要的地方,但我更希望cd$(一些变量路径)

如果有人能给我一个最低价,我将不胜感激

谢谢。

$(X)
表示“运行命令
X
并替换其输出”。它与变量无关

${X}
表示“替换变量
X
的值”

这是两个完全不同的操作,因此它们的语法不同也就不足为奇了。在这两种情况下,您通常希望在替换前后加上双引号:

#SETUP
dir_to_clean="/Users/$(whoami)/Downloads"

#Go to the directory we are going to work on
cd $dir_to_clean;
pwd

我刚刚试过:dir_to_clean=“/Users/me/Downloads”#转到我们将要处理cd$(dir_to_clean)的目录;回显“我在这里:$(pwd)”并获取./clean_downloads.sh:line 24:dir_to_clean:command not found
$(X)
表示“运行命令
X
并替换其输出”。它与变量无关<代码>${X}表示“替换变量
X
的值。这是两个完全不同的操作,因此它们的语法不同也就不足为奇了。在这两种情况下,你通常都希望在替换词周围加上双引号。rici:为什么不写下来作为答案呢?请澄清你到底想知道什么。问题是“为什么我不能用括号来展开参数”?如果是这样,@rici已经回答了你的问题。无论哪种方式,您的措辞都不够清晰,您应该编辑问题(和标题)。除了其他注释和答案外,您还可以互换使用
$(..)
反勾号
backticks
只是一种较旧的语法。当您设置一个
变量=$(..)
时,您不需要引用
$(..)
(如果它在另一个需要引用的字符串中使用,则引用整个字符串)。如果作为命令的一部分,在
$(..“$a.”“${b}/${c}”)
中需要引用,则可以引用命令,就像它不在
$(..)
中一样。当您需要调试时,
#的正下方设置-x
/bin/bash
以显示执行期间的所有变量值。
#SETUP
dir_to_clean="/Users/$(whoami)/Downloads"

#Go to the directory we are going to work on
cd "${dir_to_clean}"