我处理的是每个发行版复制到发行文件夹的脚本,例如release/version_0.0.2
。我还为此版本(文件夹release/version_0.0.2
)设置了一个符号链接,名称为latest
。要运行脚本,你必须在脚本所在的文件夹中(使用相对路径进行糟糕的设计决策)。检查目录(符号链接)是否仍指向同一位置
我的问题是这个脚本的用户几乎所有的时候都想用最新版本。所以他们将latest
设置为工作目录并从那里运行脚本。但是当我发布一个新版本时,他们会自动使用旧版本,所以需要脚本(用bash编写)询问用户他/她是否想使用旧版本。
我的ide是检查脚本是否从latest
运行,但是当我更改符号链接时,$ PWD在运行脚本时发生更改,但不在shell中。
这里有一个例子:
selnx183:~> cd latest/
selnx183:~/latest> echo $PWD
/home/ejohael/latest
selnx183:~/latest> ps
PID TTY TIME CMD
11082 pts/190 00:00:00 tcsh
32527 pts/190 00:00:00 ps
selnx183:~/latest> pwdx 11082
11082: /home/ejohael/release/version_0.0.2
selnx183:~/latest> ./test
-------------------------------------------------------------------
/home/ejohael/latest
/home/ejohael/latest
/home/ejohael/latest
/home/ejohael/release/version_0.0.2
~/latest
-------------------------------------------------------------------
/home/ejohael/latest
selnx183:~/latest> rm ~/latest
selnx183:~/latest> ln -s ~/release/version_0.0.3/ ~/latest
selnx183:~/latest> echo $PWD
/home/ejohael/latest
selnx183:~/latest> ps
PID TTY TIME CMD
11082 pts/190 00:00:00 tcsh
32727 pts/190 00:00:00 ps
selnx183:~/latest> pwdx 11082
11082: /home/ejohael/release/version_0.0.2
selnx183:~/latest> ./test
-------------------------------------------------------------------
/home/ejohael/release/version_0.0.2
/home/ejohael/release/version_0.0.2
/home/ejohael/release/version_0.0.2
/home/ejohael/release/version_0.0.2
~/release/version_0.0.2
-------------------------------------------------------------------
/home/ejohael/release/version_0.0.2
selnx183:~/latest>
试验一下如下:
#!/bin/bash
echo `env` > log
echo "-------------------------------------------------------------------"
echo $PWD
echo `pwd`
echo `cd -L . ; pwd`
echo `cd -P . ; pwd`
echo `dirs`
echo $OLDPWD
echo "-------------------------------------------------------------------"
pushd `dirname -- $0` > /dev/null
echo `pwd -L`
popd > /dev/null
我不想强迫用户总是使用最新的版本,但我发现什么时候用户认为它使用最新版本并警告用户。
编辑:我只想得到这个,如果用户从旧版本运行,而不是当用户从release/version_x.x.x运行旧版本。
一个脚本,问我关于安装的问题会烦我。想想提供一个安装程序,也许?或者修复它,以便用户不必在目录中(这会让我更加恼火)。这样,用户就可以控制并设置事物,以便他们可以使用他们想要的版本,而无需通过脚本进行讨论来尝试再次猜测他们的意图。安装程序可以将“最新”符号链接切换到自己(如果它没有找到更新的版本,请考虑重新安装旧版本)。拥有版本编号的位置是_good_功能。 –