【发布时间】:2012-12-13 18:29:59
【问题描述】:
我有一个处理 Android 文件的脚本。我从其他地方借了很多代码,并把它放在一起,现在差不多完成了。
脚本在(至少)两件事上有错误:
- 我希望它在用户选择不可用选项时显示“无效选择”消息,然后返回选择屏幕。
- 无论我是否对选定文件运行操作,如果我返回主菜单(一个名为“build”的“主”脚本)并返回此脚本,文件列表会以某种方式继续文件编号从上次..即第一次运行的最后一个文件是#43。当我再次运行脚本时,第一个文件以 #44 开头。我必须完全退出主(构建)脚本并重新开始
这是脚本:
#!/bin/bash
HOME=/home/dan/buildtool
d=$HOME/apk_in/decompiled
clear
a=`ls -d $d/* | grep .apk`
if [[ "$?" == "0" ]] ; then
echo "Available apks for Recompiling: "
echo
cd $d
for apkName in `ls | grep .apk`
do
i=$(($i+1))
apkArray[$i]=$apkName
echo " $i. $apkName" >> temp.list
done
cat temp.list
rm -f temp.list
echo
echo -n "Choose Apk number (choose x to return to menu): "
read ans
echo
if [ "$ans" == "" ]; then
echo "Invalid choice"
echo
exit 0
fi
if [ "$ans" == "x" ]; then
clear
. $HOME/build
fi
if [ "`echo $ans | sed 's/[0-9]*//'`" == "" ] || [ "ans"=="1" ]; then
apkDecode=${apkArray[$ans]}
if [ "$apkDecode" == "" ]; then
exit 0
fi
else
exit 0
fi
apktool b -f $apkDecode
else
echo
clear
echo "No valid files"
fi
理想情况下,我希望能够选择不止一个文件来处理,但我想这将是对脚本的完全重写.. 首先,我想把这个清理干净:)
【问题讨论】:
-
那么是什么阻止了你?我们在这里提供帮助,而不是为您完成工作。
-
嗯,是的,但我问是因为我不知道如何使它正常工作:/ 一方面,我不知道为什么当我不打印“无效选择”时按一个未使用的选项..?