无法在Jupyter Notebook单元中打印bash变量

时间:2019-01-27 00:43:53

标签: python bash jupyter-notebook

我正在尝试在一个Jupyter笔记本外壳中结合使用Python和bash命令,但是只有python变量有效,而使用这些python变量的bash命令却无效。这是一个例子

username="test_username"
password = getpass.getpass(prompt='Enter your password: ')
!echo "$username"
!echo "$password"
!AUTH_HEADER=$(curl -su "$username":"$password" "https://de.cyverse.org/terrain/token" | jq -r .access_token)
!export AUTH_HEADER
!echo "$AUTH_HEADER"

当我尝试在Jupyter笔记本单元中执行此操作时,这是我看到的带有空空白行的AUTH_HEADER变量。

Enter your password:  ·············
test_username
test123

我也能够回显用户名和密码,但不能回显AUTH_HEADER。我不明白我在做什么错。任何帮助表示赞赏。

1 个答案:

答案 0 :(得分:0)

我想每一个运行结束的shell命令!cmd都会启动一个新的bash实例。因此,变量AUTH_HEADER在bash实例之间不共享。尝试使用bash运行cell并在下面运行脚本

%bash
AUTH_HEADER=$(curl -su "$username":"$password"  "https://de.cyverse.org/terrain/token" | jq -r .access_token)
export AUTH_HEADER
echo "$AUTH_HEADER"