Linux 如何将bash命令组合成一个函数?

Linux 如何将bash命令组合成一个函数?,linux,shell,Linux,Shell,以下是我正在努力实现的目标。我想在该文件上运行一系列命令,例如 ls * | xargs (cat - | calculateforfile) 我想分别在每个文件上运行(cat | calculateforthis文件)。因此,基本上,如何将命令列表分组为一个函数 无需使用xargs。只需使用一个循环。您也不需要使用cat。只需用文件重定向其输入 for A in *; do calculateforfile < "$A" done 用于in*;做 calculateforfi

以下是我正在努力实现的目标。我想在该文件上运行一系列命令,例如

ls * | xargs (cat - | calculateforfile)

我想分别在每个文件上运行
(cat | calculateforthis文件)
。因此,基本上,如何将命令列表分组为一个函数

无需使用xargs。只需使用一个循环。您也不需要使用
cat
。只需用文件重定向其输入

for A in *; do
    calculateforfile < "$A"
done
用于in*;做
calculateforfile<“$A”
完成
作为一行:

for A in *; do calculateforfile < "$A"; done
用于in*;不计算文件<“$A”;完成

无需使用xargs。只需使用一个循环。您也不需要使用
cat
。只需用文件重定向其输入

for A in *; do
    calculateforfile < "$A"
done
用于in*;做
calculateforfile<“$A”
完成
作为一行:

for A in *; do calculateforfile < "$A"; done
用于in*;不计算文件<“$A”;完成

如果您正在为此寻找
xargs
解决方案(例如find命令)

这将对当前目录下以
.txt结尾的所有文件进行分类

-I
选项是此处的关键

如果您正在为此寻找
xargs
解决方案(例如find命令)

这将对当前目录下以
.txt结尾的所有文件进行分类

-I
选项是这里的关键

对于x in*,如何
;执行cat$x | calculateforfile;完成
?xargs不应该这样做吗?使用xargs时的当前输出是什么?如果您的方法有问题,那么修复很容易,
ls*| xargs-I文件(cat文件| calculateforfile)
x in*的
如何;执行cat$x | calculateforfile;完成
?xargs不应该这样做吗?当使用xargs时,当前的输出是什么?如果您的方法有问题,那么解决方法很简单,
ls*|xargs-I文件(cat文件| calculateforfile)
如果您使用
find
我想使用
-exec
会更有逻辑性,而不是将它传递给第二个程序,
find-name“*.txt”-exec“blah blah”{}
其中
{}
是每个循环中的文件,我想显示
xargs
的用法。通过这种方式,输入可以是任何内容,
find
只是用来说明CATA的输入,如果我想运行(cat文件在列表中| calculateforfile),该怎么办?那么%symbol代表什么呢?我在手册页中找不到它。不确定您想通过calculateforfile说什么,但您可以正常地通过管道传输下一个命令。所以
find-name“*.txt”| xargs-I%cat%| next_命令
将找到以.txt结尾的所有文件,xargs将逐个将它们提供给cat命令。之后的管道正常工作与您编写
cat input.txt | next_命令
的工作相同
%
这意味着xargs将用标准输入的输入替换下一次出现的
%
(在这种情况下,find命令也可以从
ls
等输入)。符号
%
也可以是任何东西,即
$
如果愿意,键是
-I
区别在于下一个_命令将接收来自cat命令的串联输出。我只想在每个文件上分别运行cat file | calculateforfile。如果我可以把文件名放在字符串的中间,这就可以了。如果你使用<代码>查找< /代码>,我想使用<代码> -Exc> <代码>将更合乎逻辑,而不是将它传递给第二个程序,<代码>查找-名称“*.txt”-Exc'“BLAH BLAH”{};
其中
{}
是每个循环中的文件,我想显示
xargs
的用法。通过这种方式,输入可以是任何内容,
find
只是用来说明CATA的输入,如果我想运行(cat文件在列表中| calculateforfile),该怎么办?那么%symbol代表什么呢?我在手册页中找不到它。不确定您想通过calculateforfile说什么,但您可以正常地通过管道传输下一个命令。所以
find-name“*.txt”| xargs-I%cat%| next_命令
将找到以.txt结尾的所有文件,xargs将逐个将它们提供给cat命令。之后的管道正常工作与您编写
cat input.txt | next_命令
的工作相同
%
这意味着xargs将用标准输入的输入替换下一次出现的
%
(在这种情况下,find命令也可以从
ls
等输入)。符号
%
也可以是任何东西,即
$
如果愿意,键是
-I
区别在于下一个_命令将接收来自cat命令的串联输出。我只想在每个文件上分别运行cat file | calculateforfile。如果我能把文件名放在字符串的中间,这可能会起作用。