Linux 如何将列表中的文件逐个导入脚本?

Linux 如何将列表中的文件逐个导入脚本?,linux,bash,for-loop,ls,Linux,Bash,For Loop,Ls,我有一个文件列表,需要将这些文件导入shell脚本。我可以使用以下命令列出目录中的文件: ls ~/data/2121/*SOMEFILE* 导致: 2121.SOMEFILEaa 2121.SOMEFILEab 2121.SOMEFILEac and so on... 我有另一个脚本,它对单个文件(2121.SOMEFILEaa)执行一些处理,我使用以下命令运行该文件: bash runscript ../data/2121/2121.SOMEFILEaa 但是,我需要通过将通过ls生成

我有一个文件列表,需要将这些文件导入shell脚本。我可以使用以下命令列出目录中的文件:

ls ~/data/2121/*SOMEFILE*
导致:

2121.SOMEFILEaa
2121.SOMEFILEab
2121.SOMEFILEac
and so on...
我有另一个脚本,它对单个文件(2121.SOMEFILEaa)执行一些处理,我使用以下命令运行该文件:

bash runscript ../data/2121/2121.SOMEFILEaa

但是,我需要通过将通过
ls
生成的文件列表中的单个文件管道化到脚本中来提高效率。如何将
ls~/data/2121/*SOMEFILES*
命令的结果逐个文件地导入
runscript
脚本

我想你正在寻找这个:

for file in ~/data/2121/*SOMEFILE*; do
    bash runscript "$file"
done
这样,您就可以为每个文件调用
bash runscript

另一个选项

ls ~/data/2121/*SOMEFILE* | xargs -L1 bash runscript

[-t]表示超时

我希望这有帮助,
cheers Karim

您真的要将所有文件通过管道传输到脚本的一个实例中,还是要多次调用脚本,每个文件调用一次?
$ cat pipe.sh

#!/bin/bash
## Store data from pipe to variable $PIPE ------#
_read_pipe(){                                   #
    while read -t 10 pipe; do
        if [ -n "$pipe" ] ;then
            PIPE="$PIPE $pipe" ;fi ;done ;}


## your code -----------------------------------#
_read_pipe                                      #   
for kung_foo in $PIPE ;do
    echo $kung_foo ;done
$ ls 2121.SOMEFILE* | ./pipe.sh
2121.SOMEFILEaa
2121.SOMEFILEab
2121.SOMEFILEac
and so on...