将文件名连接成函数

时间:2016-07-14 20:16:33

标签: linux bash shell

我试图将一堆文件连接成一个字符串,以便我可以将它们用于一个函数。 作为测试脚本,我试图这样做:

#!/bin/bash

for line in $(cat list.txt)
do
  x=" "
  A=$A$line$x
done

echo "$A"

mv "$A" ./stuff

但我收到了错误:

 mv: cannot stat ‘x.dat y.dat z.dat ’: No such file or directory

但他们绝对是

我可以得到一些建议吗?

2 个答案:

答案 0 :(得分:1)

此解决方案也将使用空格处理文件名。

#!/bin/bash
mapfile -t lines < list.txt
echo "${lines[@]}"
mv "${lines[@]}" ./stuff/

它将文件的全部内容读入数组变量,显示整个数组的内容,最后在mv命令中使用这些值

答案 1 :(得分:0)

  1. 将最后一行更改为mv $A ./stuff
  2. 这应该适用于名称中没有空格的文件。