2

我为自动化编写了一个 shell 脚本。我想知道如何将终端上显示的位置转换为变量,并使用包含该位置的变量将该位置中的特定文件复制到另一个位置。

更具体地说:我运行了一个命令说“构建”文件名。成功编译文件后,它会显示文件在终端上的存储位置。我想将文件从屏幕上显示的那个位置复制到另一个位置。

提前致谢 !:)

4

1 回答 1

1

如果您的构建命令只输出生成的输出文件,您可以将它提供给 xargsand cp,例如像这样:

$ ./build.sh | xargs -I % cp % target_folder

这将提供build.shto的输出xargs,它将获取输出并将其提供给cp。如果您还有其他一些消息,那么您将不得不进行一些线路处理。例如,假设您在那里也有一些构建消息等。

$ ./build.sh
"Building ver 23"
"bla bla"
"Build complete:"
"/path/to/build/dir/output1"
"/path/to/build/dir/output2"

例如,我们可以grep使用当前路径(命令pwd)或目标构建路径(或您知道的其他内容,例如是否有一个不在日志消息中的固定二进制名称)?:

$ ./build.sh | grep `pwd` | xargs -I % cp % target_folder

编辑:哎呀一个错字,-I当然是输入参数,而不是 +I

于 2013-09-20T08:24:41.507 回答