关于 bash 脚本的简单练习



我目前正在做麻省理工学院缺席学期的第 2 讲课。

练习 2 让我们将函数写 marco.sh 并 polo.sh"polo"写回执行 marco 的目录。我为此编写了两个简单的脚本,但 polo.sh 没有cd到我保存的目录中。

马可

#!/bin/bash
currentDirectory=$(pwd)
echo "current directory is $currentDirectory"
echo "$currentDirectory" > /tmp/missing/marcoDirectory.txt

(有必要将目录保存在.txt文件中,因为 bash 无法识别带有 polo 的 currentDirectory 变量。同样,这是一项练习,我并不为此感到非常自豪(

马球

#!/bin/bash
next=$(cat /tmp/missing/marcoDirectory.txt)
echo "changing directory to $next"
cd $next

事实是,命令cd似乎没有识别到必须执行。如果我试图在其他地方cd,它也失败了。

我应该如何解决cd问题?

marco.sh可以是一个函数:

function marco(){
currentDirectory=$(pwd)
echo "Current directory is $currentDirectory"
echo "$currentDirectory" > /tmp/missing/marcoDirectory.txt
}

然后你可以source marco.sh并运行marco.sh.

polo.sh可能是这样的:

function polo(){
next=$(cat /tmp/missing/marcoDirectory.txt)
echo "Changing directory to $next"
cd "$next"
}

然后它应该重定向到马可目录。 请注意,我们应该为变量next">

"。

最新更新