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/

相关文章:

python - 努力用 crontab 运行 python 脚本

linux - 在 linux 中找不到文件,即使 "locate"返回它的位置

macos - 如何将 shell 脚本输出传递给通知?

bash - 如何以安全的方式调用 "EDITOR"环境变量来打开/编辑文件?

c++ - 使用 Lua 脚本的 Qt 应用程序架构 - 暂停执行

linux - 如何为自定义 bash 命令添加前缀?

c - 在 Linux 上跨进程共享数据

linux - bash 错误 : find: I cannot figure out how to interpret ‘2018-26-01’ as a date or time

linux-shellscript- "$#"

linux - 根据时间启动和终止进程