我目前正在做麻省理工学院缺席学期的第 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
">