Dar*_*lyn 1 unix shell scripting
我有变量“一”,其中包含以下内容
avi,mkw,dvd,cd
Run Code Online (Sandbox Code Playgroud)
我试图动态创建看起来像这样的目录
type-avi
type-mkw
type-dvd
type-cd
Run Code Online (Sandbox Code Playgroud)
我试图用以下代码达到想要的结果
mkdir type-{"$one"}
Run Code Online (Sandbox Code Playgroud)
但它没有创建 4 个目录,而是创建了一个名为
type-{avi,mkw,dvd,cd}
Run Code Online (Sandbox Code Playgroud)
我想这是错误的方法..如果是这样,我如何动态创建带有存储在变量中的“后缀”的目录?
为此,请使用数组而不是字符串变量。
IFS=, read -a onearr <<<"$one"
mkdir "${onearr[@]/#/type-}"
Run Code Online (Sandbox Code Playgroud)
或者,如果您$one首先不需要字符串,只需手动创建数组。
onearr=(avi mkw dvd cd)
mkdir "${onearr[@]/#/type-}"
Run Code Online (Sandbox Code Playgroud)
如果您不担心空格或值中的任何内容,$one并且可以相信您的输入是“安全的”而不是剥削性的并且无法使用,read那么您可以使用它来创建数组(但它只是一个更糟的解决方案)。
onearr=($(tr , ' ' <<<"$one"))
Run Code Online (Sandbox Code Playgroud)