轻松执行bash脚本

时间:2020-06-04 23:36:37

标签: bash shell scripting

我目前正在使用MIT missing semester lecture 2

练习2使我们将函数marco.sh和polo.sh写入“ polo”回到执行marco的目录。我为此编写了两个简单的脚本,但是polo.sh不会cd进入我保存的目录。

marco

#!/bin/bash

currentDirectory=$(pwd)

echo "current directory is $currentDirectory"

echo "$currentDirectory" > /tmp/missing/marcoDirectory.txt

(由于bash无法通过polo识别currentDirectory变量,因此必须将目录保存在.txt文件中。再次,这是一种练习,我并不为此感到骄傲)

polo

#!/bin/bash

next=$(cat /tmp/missing/marcoDirectory.txt)

echo "changing directory to $next"

cd $next

事实是命令cd似乎无法识别它必须执行。如果我尝试cd在其他地方,它也会失败。

我应该如何解决cd问题?

1 个答案:

答案 0 :(得分:0)

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"
}

然后将其重定向到marco目录。 请注意,next变量应为“”。