从字符串创建多个符号链接

从字符串创建多个符号链接

我有以下脚本:

#!/bin/bash

test="../t1,../t2,../t3"

ln -sf "{${test}}" .

该目录上面包含3个目录:

../
├── script
│   └── test.sh
├── t1
├── t2
└── t3

我的代码遇到的问题是它创建了一个符号链接:

t3} -> {../t1,../t2,../t3}

我期望看到的是:

t1 -> ../t1
t2 -> ../t2
t3 -> ../t3

我认为问题在于我如何避开外部集{}但我似乎无法让它发挥作用。

答案1

我猜数组就是你要找的

test=(../t1 ../t2 ../t3)
ln -s "${test[@]}" .

这不会因数组成员中的空格而中断

test=("../t 1" "../t 2" "../t 3")
ln -s "${test[@]}" .

答案2

echo ${test} | awk -F, '{for(i=1; i<=NF; ++i) print "ln -s", $i}' | /bin/bash

如果字符串中没有 , 分隔符,会更容易。问题标题应该是“创建多种的来自字符串的符号链接”

相关内容