当我在 Cygwin 终端中时,我可以轻松地使用“source”命令。
例如,假设我有一个名为“my_aliases.sh”的文件,其中包含以下内容
#!/bin/bash -f
alias clear='cmd /c cls'
#unalias clear
然后在 Cygwin 终端上,我可以输入
$source my_aliases.sh
它工作正常,每当我输入“clear”时,我都能看到它工作正常。
但我不知道为什么在另一个 shell 脚本中做同样的事情,并且调用那个 shell 脚本不起作用。
例如,假设我有一个名为“run_alias.sh”的文件,其内容如下:
#!/bin/bash -f
#
a=`source my_aliases.sh`
b=`ls -ltr`
echo $a
echo $b
当我尝试运行我的文件时
$ ./run_alias.sh
它只是没有做任何事情。例如,我可以看到命令 (b) 发生了,但命令 (a) 没有任何反应。
但是在我运行“run_alias.sh”并输入“clear”后,我收到以下错误:
$ clear
bash: clear: command not found
我什至尝试将 run_alias.sh 更改如下:
#!/bin/bash -f
echo `source my_aliases.sh`
但是现在当运行 run_alias.sh 并输入 clear 时,我得到了完全相同的错误消息!!!
知道如何从 Cygwin 中的其他一些 shell 脚本调用“源”命令吗?