脚本设置 Alias 失败

2017-11-20 14:44:28 +08:00
 icy20088
我再系统上面穿件这个脚本,执行完毕之后没有抱错,但是别名设置没有出现在别名列表里面,谁能帮我指点迷津
lterbsbj@bjlmrworker06:~> cat exuupei.sh
#!/bin/bash

alias cd_enb03='moshell 20.1.40.16'
echo $?
alias cd_enb1089='moshell 10.163.152.99'
echo $?
lterbsbj@bjlmrworker06:~> ./exuupei.sh
0
0
lterbsbj@bjlmrworker06:~> alias |grep '^cd_'
lterbsbj@bjlmrworker06:~> shopt |grep expand_aliases
expand_aliases on
2501 次点击
所在节点    Linux
3 条回复
newkedison
2017-11-20 15:05:24 +08:00
source ./exuupei.sh 或者
. ./exuupei.sh (注意前面有个“."和空格)
参考: https://zh.wikipedia.org/wiki/._(Unix)
icy20088
2017-11-20 15:18:26 +08:00
多谢多谢!真的可以,这是个什么原理
icy20088
2017-11-20 15:24:02 +08:00
找到原因了!

source 命令与 shell scripts 的区别是,source 在当前 bash 环境下执行命令,而 scripts 是启动一个子 shell 来执行命令。这样如果把设置环境变量(或 alias 等等)的命令写进 scripts 中,就只会影响子 shell,无法改变当前的 BASH,所以通过文件(命令列)设置环境变量时,要用 source 命令。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/407906

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX