这个 shell 脚本有什么问题?

这个 shell 脚本有什么问题?

它无法生成两个临时文件!为什么不?请帮忙!!输入文件有两列文件名。

但它无法将两个文件“fn1”、“fn2”复制到“Data1.dat”、“Data2.dat”中

这里出了什么问题?

#!/bin/bash

FF1=$1
while IFS=" " read -r line1  line2; 
do
  fn1=$line1
  fn2=$line2

  cp $fn1   Data1.dat
  cp $fn2   Data2.dat

...other ext-scripts!...

done  < $FF1

这段代码复制失败,从而生成了那两个临时数据文件!仍然有“cp 操作线的错误消息”

请帮忙正确制作这两个文件。谢谢。

答案1

我用以下方法重现了你的循环:

while IFS="  " read -r line1 line2; do echo "cp $line1 $line2"; done <in

这会产生(使用一个简单的“in”文件):

cp 111 aaaa
cp 222 bbb
cp 3333 ccccc

但如果说第三行包含名称(即带有空格的名称),您会得到

cp 33 33 ccccc

现在突然cp“切换”到“将多个文件复制到一个目录中”模式,但失败了,因为目标“ccccc”(或“Data1.dat”)不是目录。

cp:“Data2.dat”后缺少目标文件操作数

这发生在之后cp onefile。有些东西混淆了你的论点。你必须做一些测试...

输入文件有两列文件名。

你确定吗?

相关内容