[英]How to split a bash command?
我有以下命令
mkdir -p /tmp/{A,B,C,D}
上面的命令工作正常,但不是以下作为bash考虑B,C和D作为不同的命令:
我想要下面的东西:
mkdir -p /tmp/{A,
B,
C,
D}
正如评论中所指出的那样,你可以在换行符之前使用反斜杠来做到这一点,但是任何空格都会被认为是重要的,整个事情最终会变得相当丑陋。 作为一种美学上更令人愉悦的解决方法,您可以将目录名称放在一个数组中。
dirs=(
a
b
c
d
)
mkdir -p "${dirs[@]/#//tmp/}"
构造"${array[@]/#/prefix)"
再现array
的值,并在每个前面添加前缀prefix
。
但这是相对模糊的; 除非您创建的真实目录名称非常冗长且繁琐,否则只需将其写出来就是我的建议。
正如注释中所指出的,两个数组和{A,B,C,D}
都是Bash结构,所以如果你调用sh
而不是bash
就不可用(即使sh
是bash
的符号链接; Bash会注意到,并启用POSIX模式)。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.