linux - 使用 find -exec linux 命令运行二进制文件

标签 linux bash terminal find

奇怪的问题我正在尝试使用 Linux find 命令并成功找到一个脚本文件,然后我想运行它而不产生新的 shell,这可能吗?

例子:

$ find ~ iname script.sh -exec ls -s {} -exec bash {} +

这成功运行了脚本,但我不想生成新的 shell,是否可以只运行脚本?

最佳答案

你的意思是你想将你找到的脚本 source 到你当前的 shell 中吗?如果是这样:

while IFS= read -r -d '' scriptname; do
  printf '%s\n' "$scriptname" >&2
  source "$scriptname"
done < <(find ~ -iname script.sh -print0)

如果您只是想避免在将它们作为子进程运行时涉及多个解释器:

find ~ -iname script.sh -exec ls -sh '{}' ';' -exec '{}' ';'

...引用 {} 对 bash 来说不是必需的,但如果一个人的代码可以从 zsh 使用,这是一种习惯。

关于linux - 使用 find -exec linux 命令运行二进制文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28821675/

相关文章:

c++ - CodeSourcery Lite 强制包含到 ARM9/的搜索路径

c - 缓冲区溢出实现

bash - 处理 bash 脚本参数中的空格

linux - 如何将密码添加到 scp 命令的脚本中

linux - 如何在linux命令行中读取文件?

windows - 如何在 Windows 上从 Powershell 打开文件夹(在我的桌面上)?

linux - 使用sed在模式后第n行的文件中插入字符串

linux - makefile 中的 while 循环

ruby-on-rails - 如何在 curl (bash) 脚本中使用 ruby​​ rails 变量

terminal - VSCode : how to make Ctrl+k kill till the end of line in the terminal?