我是linux新手。我想知道您是否可以将程序的输出(以逗号分隔的值)用作将用于括号扩展的值。
我主要是尝试通过触摸来做到这一点的,但是我开始使用echo来测试不同的方法而没有运气。基本方法是
echo b/{$(find sourceFolder -type f -printf "%f,")}
我也尝试过猫,但是得到了相同的结果。 find的输出用作括号中的单个值,而不是多个逗号分隔的值。我用
进行了验证echo b/{$(find sourceFolder -type f -printf "%f,"),otherValue}
我得到2个输出b /(用find逗号分隔值列表)和b / otherValue
我能够通过触摸在当前工作文件夹中创建文件,我想看看是否有可能在另一个文件夹中创建文件。
答案 0 :(得分:3)
令人沮丧,但是在变量扩展之前执行了括号扩展。因此,您需要另一种方法。考虑:
find sourceFolder -type f -printf "b/%f\n"
这会将b/
放在每个找到的文件名的前面,并且不需要大括号扩展。
答案 1 :(得分:0)
虽然不能直接使用bash进行此操作,但是可以使用eval
获得相同的结果:
$ eval "echo {$(echo 2,3),4}"
2 3 4