我希望我能做到,cd | [my command]
但它似乎cd
无法通过管道工作。
我想简单地cd
输入而不编写 bash 脚本之类的输出,[my command]
我希望有一种简单的方法可以做到这一点。
答案1
在 POSIX shell 中:
cd -P -- "$(mycommand)"
$(cmd)
是命令替换。它扩展到标准输出cmd
减去尾随换行符。"$(cmd)"
。如果没有引号,扩展将受到 split+glob 的影响,这是我们不希望的。--
将选项与参数分开。如果您知道 的输出mycommand
不会以-
nor开头+
,则可以省略它。如果没有that
输出我将被视为选项cd
cd
是更改当前目录的命令。但是,如果没有-P
,它可能不会更改为作为参数给出的目录(如果该目录包含..
组件)。
或者你可以写cd $(mycommand)
.这会非常草率,但是只要 的输出mycommand
不包含空格、制表符、换行符、、、*
字符?
或[
组件..
并且不以-
或开头,那么就可以工作+
。
现在我听到你问,我如何使用这些命令更改以换行符结尾的目录?