文章目录
一、问题描述
在执行 ByteX 项目的上传脚本 publish.sh
的时候,出现错误了,但是错误一闪而过,完全无法分析问题是啥。
所以,我的需求是,执行完shell脚本之后,不管成功还是失败,你别主动关闭掉窗口,关不关窗口我自己来决定。
二、实现方式一
2.1 原来的内容
原来的publish.sh 内容为:
#!/usr/bin/env bash
##############################################################################
##
## Upload gradle_plugins to TT Nexus (https://wiki.bytedance.net/pages/viewpage.action?pageId=173661094)
## http://git.bytedance.com:8081/#browse/browse/components:ugc_android (search key : com.bytedance.android.byteX)
## run ./publish.sh -m to upload to maven.
## run ./publish.sh -m -t to upload to maven(snapshot -t=-test).
## run ./publish.sh to upload to gradle_plugins directory.
## run ./publish.sh -b to upload to bintray jcenter.
##############################################################################
upload2Maven=false
useSnapshot=false
upload2JCenter=false
while getopts "mtb" opt
do
case ${opt} in
m)
upload2Maven=true
;;
b)
upload2Maven=true
upload2JCenter=true
;;
t)
useSnapshot=true
;;
esac
done
echo ${upload2Maven}
echo ${upload2JCenter}
echo ${useSnapshot}
echo "upload2Maven=$upload2Maven" > upload.properties
echo "useSnapshotMaven=$useSnapshot" >> upload.properties
echo "excludeApp=true" >> upload.properties
#./gradlew clean
if [[ "$upload2JCenter" == "true" ]]; then
echo "upload2JCenter=$upload2JCenter" >> upload.properties
./gradlew bintrayUpload --stacktrace
else
./gradlew uploadArchives
fi
rm -rf ./upload.properties
2.2 增加一个sleep 10000
来防止窗口自动关闭
然后 我在这个文件的结尾,增加一个sleep 10000
,如下所示
完整代码如下所示:
#!/usr/bin/env bash
##############################################################################
##
## Upload gradle_plugins to TT Nexus (https://wiki.bytedance.net/pages/viewpage.action?pageId=173661094)
## http://git.bytedance.com:8081/#browse/browse/components:ugc_android (search key : com.bytedance.android.byteX)
## run ./publish.sh -m to upload to maven.
## run ./publish.sh -m -t to upload to maven(snapshot -t=-test).
## run ./publish.sh to upload to gradle_plugins directory.
## run ./publish.sh -b to upload to bintray jcenter.
##############################################################################
upload2Maven=false
useSnapshot=false
upload2JCenter=false
while getopts "mtb" opt
do
case ${opt} in
m)
upload2Maven=true
;;
b)
upload2Maven=true
upload2JCenter=true
;;
t)
useSnapshot=true
;;
esac
done
echo ${upload2Maven}
echo ${upload2JCenter}
echo ${useSnapshot}
echo "upload2Maven=$upload2Maven" > upload.properties
echo "useSnapshotMaven=$useSnapshot" >> upload.properties
echo "excludeApp=true" >> upload.properties
#./gradlew clean
if [[ "$upload2JCenter" == "true" ]]; then
echo "upload2JCenter=$upload2JCenter" >> upload.properties
./gradlew bintrayUpload --stacktrace
else
./gradlew uploadArchives
fi
rm -rf ./upload.properties
sleep 10000
2.3 运行效果
这样运行该publish.sh
的时候,就不会主动关闭窗口了。
三、实现方式二
3.1 使用read命令达到类似bat中的pause命令效果
直接在原来的脚本末尾,加上下面一段代码,实现类似bat中的pause命令效果
#!/bin/bash
echo 按任意键继续
read -n 1
echo 继续运行
3.2 修改后的
#!/usr/bin/env bash
##############################################################################
##
## Upload gradle_plugins to TT Nexus (https://wiki.bytedance.net/pages/viewpage.action?pageId=173661094)
## http://git.bytedance.com:8081/#browse/browse/components:ugc_android (search key : com.bytedance.android.byteX)
## run ./publish.sh -m to upload to maven.
## run ./publish.sh -m -t to upload to maven(snapshot -t=-test).
## run ./publish.sh to upload to gradle_plugins directory.
## run ./publish.sh -b to upload to bintray jcenter.
##############################################################################
upload2Maven=false
useSnapshot=false
upload2JCenter=false
while getopts "mtb" opt
do
case ${opt} in
m)
upload2Maven=true
;;
b)
upload2Maven=true
upload2JCenter=true
;;
t)
useSnapshot=true
;;
esac
done
echo ${upload2Maven}
echo ${upload2JCenter}
echo ${useSnapshot}
echo "upload2Maven=$upload2Maven" > upload.properties
echo "useSnapshotMaven=$useSnapshot" >> upload.properties
echo "excludeApp=true" >> upload.properties
#./gradlew clean
if [[ "$upload2JCenter" == "true" ]]; then
echo "upload2JCenter=$upload2JCenter" >> upload.properties
./gradlew bintrayUpload --stacktrace
else
./gradlew uploadArchives
fi
rm -rf ./upload.properties
# 使用read命令达到类似bat中的pause命令效果
echo 按任意键继续
read -n 1
echo 继续运行
3.3 运行效果
运行完毕,弹出提示 按任意键继续
随便点击键盘,都可以响应,然后关闭窗口