我为自动化编写了一个 shell 脚本。我想知道如何将终端上显示的位置转换为变量,并使用包含该位置的变量将该位置中的特定文件复制到另一个位置。
更具体地说:我运行了一个命令说“构建”文件名。成功编译文件后,它会显示文件在终端上的存储位置。我想将文件从屏幕上显示的那个位置复制到另一个位置。
提前致谢 !:)
如果您的构建命令只输出生成的输出文件,您可以将它提供给
xargs
and cp
,例如像这样:
$ ./build.sh | xargs -I % cp % target_folder
这将提供build.sh
to的输出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