是否可以从函数中的单个语句声明和导出bash数组?
我目前的解决方法是先声明,然后再导出。
f() { foo=(1 2 3); export foo; }; f; export -p | grep foo=
declare -ax foo='([0]="1" [1]="2" [2]="3")'
我观察到:
f() { export bar=(1 2 3); }; f; export -p | grep bar=
<no output>
和:
f() { export baz="(1 2 3)"; }; f; export -p | grep baz=
declare -x baz="(1 2 3)" # not an array
我使用bash v3.2.48(1)-release 并且无法升级。
一些背景:
我有一个朋友,我想和他一起学习“一些”Django。
他在命令行上比我更无能,在 OSX hackintosh 上需要以下内容:
- 启动交互式外壳
- 根据我的规范,找到包括 django bin 目录的 PATH 变量
- 找到一个更新的 PYTHONPATH env var,各种 django 库可见
- 一个不错的交互式 ipython shell,双击后开始输入命令
- (棘手的)一旦他 CTRL-D 从 ipython 退出时回退到一个交互式 shell
在 Windows 上,我会为命令快捷方式(如 cmd.exe)设置别名,设置自定义环境变量并启动 ipython。这有效:退出 ipython 后,仍然会发现自己处于命令解释器中。
这对 OSX 的标准 bash 有可能吗?我玩过 bash -c 但很多事情都不起作用,比如切换到目录,能够退出 python 并留在终端等。也玩过 -s。