deW*_*eW1 0 bash ubuntu shell-script
我写了一个简单的脚本来切换我的语言环境。如果我在控制台中写下每一行并执行它,它就可以正常工作,或者如果我把它放在.bashrc.
但是,当我使用 sudo 或不使用它执行脚本时,绝对没有明显的效果。(语言环境保持不变)
问题是为什么会这样?
是我的脚本错了还是我错过了一些不同的东西。
来源:
#!/bin/bash
set -x
LANG=en_US.utf8
LANGUAGE=en_US.utf8
LC_ALL=en_US.utf8
export LANG
export LANGUAGE
export LC_ALL
echo "Language set!"
Run Code Online (Sandbox Code Playgroud)
我正在接收执行步骤和Language set回声,但仅此而已。我也试过了#!/bin/sh。
操作系统信息:
DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=14.04
DISTRIB_CODENAME=trusty
DISTRIB_DESCRIPTION="Ubuntu 14.04.3 LTS"
Kernel: 3.13.0-042stab103.6
Run Code Online (Sandbox Code Playgroud)
看起来很正常。更改仅应用于本地 shell 会话(即运行脚本的会话),父 shell 不受影响。
如果您在当前 shell 中运行命令,则会影响您当前的 shell,如果您将它放在 .bashrc 中,那么它也会在启动时影响您当前的 shell。
但是,当您将其放入脚本中时,会生成一个新的 shell 以将脚本作为当前脚本的子项运行,因此对其环境的任何修改都不会影响其父项。
要将更改应用到您当前的 shell,您需要“获取”它而不是“执行”您的脚本。因此,如果您的脚本被称为“script.sh”,则不是将其作为 执行,而是将其作为./script.sh来源. ./script.sh,您的更改将应用于当前会话。
| 归档时间: |
|
| 查看次数: |
2070 次 |
| 最近记录: |