如何为 Linux 目录中的所有文件运行脚本? [复制]
Posted
技术标签:
【中文标题】如何为 Linux 目录中的所有文件运行脚本? [复制]【英文标题】:How to run a script for all files in Linux directory? [duplicate] 【发布时间】:2019-02-04 10:03:41 【问题描述】:这里是 Linux 新手,很抱歉这个(简单的?)问题:
我在 Linux 中有一个名为 script_run 的脚本,如果我运行一次并手动指定文件名,它就可以正常工作。该脚本读取输入文件,插入数据,然后将插入的数据保存到输出文件。我希望输出文件具有相同的名称,但添加了“_interp”。我想自动化脚本以运行文件夹目录中的所有文件。我该怎么做呢?我的尝试如下,我在文件夹目录中运行脚本,但无法循环。谢谢您的帮助!
FILEFOLDER=$*
for FILES in $FILEFOLDER
do
script_run "
[--input $FILES]
[WriterStd --output tmp_output_$FILES.txt]"
cat tmp_output_$FILES.txt >> output_$FILES_interp.txt
done
【问题讨论】:
How to iterate over files in a directory with Bash?、Bash script to execute command on all files in a directory、How to do something to every file in a directory using bash?、for loop over specific files in a directory using Bash 等可能重复 另见How to use Shellcheck、How to debug a bash script?(U&L.SE)、How to debug a bash script?(SO)、How to debug bash script?(AskU)、Debugging Bash scripts等 抱歉,我觉得这些答案没有解决我的文件路径/目录命名问题 【参考方案1】:#!/bin/bash
FILES=`ls *.*`
for FILE in $FILES
do
script_run "[--input $FILE] [WriterStd --output tmp_output_$FILE.txt]"
cat tmp_output_$FILE.txt >> output_$FILE_interp.txt
done
顺便说一句,这个奇怪的注释 [--input $FILE]
是怎么回事?您的脚本是否明确需要这样的格式?
【讨论】:
谢谢,成功了。 --input 注释是 script_run 包的一部分,它明确要求格式化。以上是关于如何为 Linux 目录中的所有文件运行脚本? [复制]的主要内容,如果未能解决你的问题,请参考以下文章
如何为子目录中的 C# 文件编写 DependentUpon 子句?