为什么脚本无法识别文件扩展名? [英] Why does script not recognize file extension?

查看:121
本文介绍了为什么脚本无法识别文件扩展名?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我的脚本

#!/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目录并列出文件时

When I go to procmt directory and list files

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

我的脚本出了什么问题?

What is wrong with my script?

推荐答案

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

If I understand correctly this should work for you:

dest='/home/milenko/procmt'

cp *.ats "$dest"

cd "$dest"

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

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

There is no need to loop through all files when you're only interested in .ats files. Your mycd function is just doing cd so you can avoid that as well.

这篇关于为什么脚本无法识别文件扩展名?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆