大家好!
我今天遇到了一件非常奇怪的事情,我想知道为什么会这样。我一整天都在这样做,直到我弄清楚发生了什么。
所以我正在编写一个bash脚本来通过Jenkins自动构建。
脚本看起来像这样:
#!/bin/bash
WORKDIR="sftp_servername"
USERNAME="someuser"
PASSWORD="somepassword"
HOST="somehost"
HTDOCS="web"
if [ ! -d "$WORKDIR" ]; then mkdir -m 744 "$WORKDIR"; fi
if !(echo "$PASSWORD" | sshfs "$USERNAME@$HOST:/" "$WORKDIR" -p 22 -o ServerAliveInterval=60,password_stdin)
then
echo "Failed to connect to $HOST"
exit
fi
cd $WORKDIR
>>> ls -la <<< !
if [ -d "$HTDOCS" ]
then
unlink "./$HTDOCS"
fi
... additional commands to link the folder to another release etc. that works just fine
现在,如果ls -la存在,上面的脚本可以工作(并删除$ WORKDIR符号链接)!这怎么可能。如果我删除ls -la行,它会“不能删除$ WORKDIR是一个目录”sshfs是否需要ls来“实现”$ WORKDIR是符号链接而不是文件夹?
如果是这样的话,你有没有更智能的解决方案,而不是它?