【问题标题】:Bash script output not showing up during execution? [duplicate]Bash脚本输出在执行期间未显示? [复制]
【发布时间】:2019-12-31 21:14:12
【问题描述】:

我已经在我的 debian 系统上创建了一个虚拟环境,并且我制作了一个脚本来激活它(应该)。

但是,当我执行脚本时,什么都没有显示,甚至没有错误,我的猜测是它在不同的 shell 中运行,但我不知道如何解决它。

这是脚本的代码

#!/bin/bash
source ~/PythonEnv/environments/my_env/bin/activate

我已经用 chmod u+x 更改了权限,所以这不是问题。

当我执行脚本时,什么都没有出现。有什么想法吗???

【问题讨论】:

  • 将 ~/PythonEnv/environments/my_env/bin/activate 的内容添加到您的问题中。
  • 我假设这是一个 python 虚拟环境?如果是这样,当您activate 时,它会更改 shell 环境和 shell 提示符。它实际上并没有运行任何东西。所以不清楚你在期待什么。
  • @kaylum 是的,你是对的,我想我想制作一个改变 shell 环境的脚本,有什么办法吗?
  • 不明白你的意思。如果您在谈论 python 虚拟环境功能,那么 activate 已经做了“更改 shell 环境”。
  • @kaylum 我想做一个脚本来改变 shell 环境

标签: linux bash shell debian


【解决方案1】:

在 bash 脚本的开头添加 set -x 即可。

-x  Print commands and their arguments as they are executed.

您可以在此处查看更多 bash 选项 http://linuxcommand.org/lc3_man_pages/seth.html

【讨论】:

    【解决方案2】:

    不需要添加 x 权限,因为您使用的是带有绝对路径的 source。当然,这只会设置由您在此处发布的 shell 脚本执行的环境。如果您想在交互式 shell 中进行更改,那么在脚本中进行更改是没有意义的。您必须在 shell 中获取激活脚本(分别在您希望修改环境的进程中)。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-11-14
      • 2021-08-30
      相关资源
      最近更新 更多