【发布时间】:2017-02-03 23:20:18
【问题描述】:
我创建了一个 bash 脚本来临时帮助我根据提交的 id 将一些文件发送到 FTP 服务器,我得到最后一次提交,跟踪文件并按照下面列出的方式发送。
#!/bin/bash
commit_hash=$(git log --format="%H" -n 1)
[[ -z "$1" ]] || commit_hash=$1
files=$(git diff-tree --no-commit-id --name-only -r $commit_hash)
echo -e $(git log -1 $commit_hash --pretty=format:"%h - %an, %ar : %s");
printf "\n"
HOST=
USER=
PASS=
for file in $files; do
ftp -nv $HOST << EOF
user $USER $PASS
cd /www/example
passive
put $file
bye
EOF
done;
当然这不是最好的方法,但我自动化了一些我目前正在做的事情。
是否可以捕获 heredoc 的 ftp 输出并应用一些过滤器?以管道为例,我只想知道传输是否成功完成。
【问题讨论】:
-
用
$?bash 变量检查ftp的退出状态码怎么样?它可能包含足够的信息来确定请求是否成功。
标签: linux git bash shell scripting