Linux 如何从bash中的另一个命令发送函数结果?
我想写一个bash脚本,叫做unpack, 它可以解压多个打包文件。它甚至可以递归地遍历文件夹,并将其中的所有归档文件解包,而不考虑打包时使用的特定算法 具体内容如下:Linux 如何从bash中的另一个命令发送函数结果?,linux,bash,ubuntu,Linux,Bash,Ubuntu,我想写一个bash脚本,叫做unpack, 它可以解压多个打包文件。它甚至可以递归地遍历文件夹,并将其中的所有归档文件解包,而不考虑打包时使用的特定算法 具体内容如下: unpack [-r] [-v] file [file...] 给定一个文件名列表作为输入,该脚本查询每个目标文件(解析文件的输出) 命令)以获取在其上使用的压缩类型。然后,脚本自动调用相应的解压缩命令,将文件放在同一文件夹中 如果已存在同名文件,则会覆盖这些文件。 现在-我的代码是: command=${1?Err
unpack [-r] [-v] file [file...]
给定一个文件名列表作为输入,该脚本查询每个目标文件(解析文件的输出) 命令)以获取在其上使用的压缩类型。然后,脚本自动调用相应的解压缩命令,将文件放在同一文件夹中
如果已存在同名文件,则会覆盖这些文件。
现在-我的代码是:
command=${1?Error: no command given}
arr="($@)"
for ((i=0; i<=3; i++))
do
--here I want to send to $command $arr[i]
echo "$i: ${arr[i]}"
done
现在,这段代码正在为其类型的每个参数打印。但我想对每一个都减压。如何处理xargs结果?有两种方法可以将命令的输出用作下一个命令的输入:
- 烟斗
grep "something" filename.txt | sort
说明:首先文件被过滤,并且grep
希望在屏幕上显示结果。但是,这些行被用作sort
命令的输入,该命令对结果进行排序并显示结果
这种工作方式主要用于单个命令行
- 将一个命令/函数的输出作为另一个命令/函数的输入传递
$(…)
或倒勾来完成:
chmod 777 $(pwd)
chmod 777 `pwd`
这种工作方式更多地在脚本中使用。
arr=“($@)”
不会做您认为它会做的事情arr
不是数组,它是一个普通变量。那解包[-r][-v]文件[文件…]
是什么?如果是这样,它可以用-p
将数据输出到标准输出,然后您可以重定向它。您能否澄清要求-需要支持哪种类型的“打包文件”?您是在谈论tgz、zip、bz2等等@dash-o解包应支持4个解包选项-解压缩, bunzip2, 解压, 解压. 添加更多选项应该非常简单..bz2.cmpr.gz.zipif我想对结果做点什么:我现在的代码是:我编辑了这个问题。
chmod 777 $(pwd)
chmod 777 `pwd`