我的剧本

#!/bin/bash

cp *.ats /home/milenko/procmt

mycd() {
  cd /home/milenko/procmt
}

mycd

EXT=ats
for i in *; do
    if [ "${i}" != "${i%.${EXT}}" ];then
        ./tsmp -ascii i
    fi
done

但是
milenko@milenko-HP-Compaq-6830s:~/Serra do Mel/MT06/meas_2016-07-13_20-22-00$ bash k1.sh


./tsmp: handling 1 files ************************************** total input channels: 1
the name of your file does not end with ats ... might crash soon

main (no rda) -> can not open i for input, exit


./tsmp: handling 1 files ************************************** total input channels: 1
the name of your file does not end with ats ... might crash soon

main (no rda) -> can not open i for input, exit

当我转到procmt目录并列出文件时
milenko@milenko-HP-Compaq-6830s:~/procmt$ ls *.ats
262_V01_C00_R000_TEx_BL_2048H.ats  262_V01_C00_R086_TEx_BL_4096H.ats  262_V01_C02_R000_THx_BL_2048H.ats
262_V01_C00_R000_TEx_BL_4096H.ats  262_V01_C01_R000_TEy_BL_2048H.ats  262_V01_C03_R000_THy_BL_2048H.ats

我的剧本怎么了?

最佳答案

如果我理解正确,这应该对你有用:

dest='/home/milenko/procmt'

cp *.ats "$dest"

cd "$dest"

for i in *.ats; do
     ./tsmp -ascii "$i"
done

当您只对.ats文件感兴趣时,不需要遍历所有文件。您的mycd函数只是在执行cd操作,因此您也可以避免这种情况。

10-08 01:14