~/.bashrc return 只能从函数或源脚本中“返回”

~/.bashrc return 只能从函数或源脚本中“返回”

我正在尝试设置一个 OpenStack 盒来查看 OpenStack 对象存储 (Swift)。浏览网页时,我找到了此链接;

http://swift.openstack.org/development_saio.html#loopback-section

我逐行按照说明进行操作,但在“获取代码和设置测试环境”部分的第 7 步就卡住了。

当我执行时~/.bashrc我明白了;

line 6: return: can only 'return' from a function or sourced script. 

以下是第 6 行摘录~/.bashrc。我的第一反应是注释掉这一行,但我不知道它有什么用。有人能帮忙吗?

#If not running interactively, dont't do anything
[ -z "$PS1" ] && return

如果知道这一点有用的话,我正在 Hyper-v 上将 Ubuntu 12.04 作为 VM 运行。

答案1

看起来你应该“source”脚本。这意味着像这样运行它:

. ~/.bashrc

它实际上与将所有命令输入到您正在运行它的 shell 中相同,并具有改变正在运行的 shell 的环境的效果(如果它作为子进程运行则不会发生这种情况)。

答案2

该页面为您提供了错误的建议。您应该不是把这些行放在 中~/.bashrc。导出应该只放在 中~/.profile。默认~/.profile已经添加~/bin到 PATH(如果~/bin存在),因此您不需要重复这一行。因此:

  1. 删除你添加到的行~/.bashrc
  2. 添加行export SWIFT_TEST_CONFIG_FILE=/etc/swift/test.conf~/.profile
  3. 注销并重新登录(~/.profile登录时读取)

http://mywiki.wooledge.org/DotFiles了解更多信息。

相关内容