小编var*_*der的帖子

从代码库执行远程脚本会导致无限循环

我经常使用这种模式在 GitHub 中执行原始版本的远程 Bash 脚本:

wget -O - https://raw.githubusercontent.com/<username>/<project>/<branch>/<path>/<file> | bash
Run Code Online (Sandbox Code Playgroud)

通常我可以毫无问题地做到这一点,但是由于我将以下代码添加到某个脚本中,我得到了一个无限循环echo(即使我只是将它从 GitHub 复制粘贴到终端并直接执行,它也经常发生):

wget -O - https://raw.githubusercontent.com/<username>/<project>/<branch>/<path>/<file> | bash
Run Code Online (Sandbox Code Playgroud)

我至少可以部分解决这个问题,例如:

while true; do
    read -p "Example question: Do you wish to edit the PHP file now?" yn
    case $yn in
        [Yy]* ) nano PROJECT/PHP_FILE; break;;
        [Nn]* ) break;;
        * ) echo "Please answer yes or no.";;
    esac
done
Run Code Online (Sandbox Code Playgroud)

这表明| bash管道至少会使问题恶化,因为问题总是伴随着它发生。

为什么会echo "Please answer yes or no."“无休止地”发生?(我用CTRLC+停止它C
您在单行执行命令和/或 …

bash source remote control-flow case

2
推荐指数
1
解决办法
85
查看次数

针对空 IFS 测试默认 IFS

我知道在 Bourne shell 和派生类中,IFS=将 IFS 设置为 null,因此 shell 不会执行任何字段拆分。

我记得阅读过:

  • echo "$*"
  • IFS= echo "$*"

当我运行这两个命令时,一次在 CentOS 中,一次在 WSL(uname -o= GNU/Linux only,所以我不知道发行版)我只有空行。

上面的测试命令是什么意思,它真的是学习 IFS 的好例子吗(如果不是,你会建议什么简单的两行测试)?

bash

0
推荐指数
1
解决办法
59
查看次数

标签 统计

bash ×2

case ×1

control-flow ×1

remote ×1

source ×1