当我在Cygwin终端中时,我可以轻松使用“source”命令。例如,假设我有一个名为“my_aliases.sh”的文件,其中包含以下内容。
然后在Cygwin终端上,我可以输入
#!/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脚本调用"source"命令吗?