<分区>
我已经编写了一个用于自动化的 shell 脚本。我想知道如何将终端上显示的位置放入一个变量中,并使用包含该位置的变量将该位置的特定文件复制到另一个位置。
更具体地说: 我运行了一个命令说“构建”文件名。 文件编译成功后,它会显示文件在终端上的存储位置。 我想将文件从屏幕上显示的那个位置复制到另一个位置。
提前致谢!:)
<分区>
我已经编写了一个用于自动化的 shell 脚本。我想知道如何将终端上显示的位置放入一个变量中,并使用包含该位置的变量将该位置的特定文件复制到另一个位置。
更具体地说: 我运行了一个命令说“构建”文件名。 文件编译成功后,它会显示文件在终端上的存储位置。 我想将文件从屏幕上显示的那个位置复制到另一个位置。
提前致谢!:)
最佳答案
如果你的构建命令只输出生成的输出文件,你可以将它提供给
xargs
和cp
,例如像这样:
$ ./build.sh | xargs -I % cp % target_folder
这会将 build.sh
的输出提供给 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
关于linux - 构建后将文件复制到终端上显示的位置的 Shell 脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18911859/