linux - 构建后将文件复制到终端上显示的位置的 Shell 脚本

标签 linux shell scripting terminal

<分区>

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

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

提前致谢!:)

最佳答案

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

$ ./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/

相关文章:

linux - 查找哪个java程序被Linux OOM Killer杀死

linux - 从损坏的 tar 存档中提取好文件

linux - 使用 bash 进行文本操作

linux - awk 找到第一个匹配项,而不是所有匹配项

macos - AppleScript 从另一个包启动 pkg 文件

ruby-on-rails - Rails 2.3.5 连接到 SQL Server 2005

java - 什么会导致 java 进程逐渐减少 CPU 份额?

linux - 加密 config.properties 文件中的密码

parsing - Bash:将文本文件拆分为以非字母数字字符作为分隔符的单词

ruby-on-rails - 如何从 lib/tasks 中的任务访问我的 Rails 数据库?