git 子模块 foreach:执行读取

发布于 2024-11-05 06:41:04 字数 179 浏览 3 评论 0原文

是否可以在 git foreach 中执行读取?

git submodule foreach 'read -p "test"; echo $REPLY'

根本不起作用,因为读取从 git 本身获取输入 - 这里是 objname 和 hash。 有没有机会交互式地阅读控制台?

Is it possible to execute a read inside a git foreach?

git submodule foreach 'read -p "test"; echo $REPLY'

does not work at all as the read gets the input from git itself - which is the objname and hash here.
Is there any chance to read interactively of the console?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

┈┾☆殇 2024-11-12 06:41:04

如果将输入/输出重定向到 /dev/tty 则可以。您需要检查 tty 是否可用基于 isatty 的方法 首先当你做这种事情的时候。

例如,像这样创建一个 ./test.sh

exec </dev/tty >/dev/tty
read -p "Enter text:" VALUE
echo "got: $VALUE"

然后

git submodule foreach ../test.sh

会做正确的事情,例如在我的测试中

sehe@meerkat:~/custom/MONO$ git submodule foreach ../test.sh
Entering 'cecil'
Enter text:a
got: a
Entering 'glib'
Enter text:b
got: b
Entering 'gtk-sharp'
Enter text:c
got: c
...

You can if you redirect input/output to /dev/tty. You will want to check whether a tty is available with isatty based methods first when you do this kind of thing.

E.g., create a ./test.sh like so

exec </dev/tty >/dev/tty
read -p "Enter text:" VALUE
echo "got: $VALUE"

And then

git submodule foreach ../test.sh

Will do the right thing, e.g. in my testing

sehe@meerkat:~/custom/MONO$ git submodule foreach ../test.sh
Entering 'cecil'
Enter text:a
got: a
Entering 'glib'
Enter text:b
got: b
Entering 'gtk-sharp'
Enter text:c
got: c
...
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文