我正在编写一个脚本,它将拦截我在shell上发出的任何命令(ksh93), 并根据我的要求处理选项和参数。
说,我有script.ksh
./script.ksh
$ rm -rf dir1 dir2
然后我想分别提取r,f和dir1,dir2,以便我可以单独检查每个选项,然后在删除dir1之前再做一些事情,dir2
我想出了以下代码,将选项和参数分成不同的数组:
read INPUT
count=`echo $INPUT | wc -w`
echo $count
command=`echo $INPUT | cut -d' ' -f1`
echo $command
counter=2
indexOptions=0
indexArgs=0
while [ "$counter" -le "$count" ]
do
word=`echo $INPUT | cut -d' ' -f$counter`
if [[ "$word" == -* ]]
then
options["$indexOptions"]=$word
((indexOptions=indexOptions+1))
else
args["$indexArgs"]=$word
((indexArgs=indexArgs+1))
fi
((counter=counter+1))
done
但我想知道是否有更好的方法或任何其他命令或工具可以用来改善我的方法。
提前致谢。