shell脚本 - 条件检查范围失败

时间:2015-07-20 22:08:13

标签: linux bash shell while-loop wildcard

我刚开始编写shell脚本,出于测试目的,我正在尝试创建供个人使用的脚本。 我有一个家庭文件服务器,我有时会同步,我正在尝试创建一个交互式脚本,这样我就可以更轻松地完成mp3同步任务。

这是我的剧本:

this._id

我现在已经掌握了基础知识我试图将用户交互限制到我真正想要的但我失败了。 基本上在第一个用户提示符下我只想接受01或02作为输入,而在第二个用户提示符上只接受大写单个字母。 任何人都知道为什么我这么简单的事情失败了?

1 个答案:

答案 0 :(得分:0)

我得到了它的工作,它不是一个漂亮的代码或最好的逻辑,但它的工作原理:

!/bin/bash
##############################################
############    MP3 SYNC SCRIPT ##############
##############################################
#### REV: 01 20/07/2015
#### Author: Marcio Ribeiro

echo -e "Sincronizar do storage para o note ( escolha 1 ) ou do note para storage ( escolha 2 ): \n 1: Destino final Note \n 2: Destino final Storage"
read  DESTINO
            until [ "$DESTINO" = "1" ] || [ "$DESTINO" = "2" ];
do
            read -p "Por favor escolha entre 1 ou 2:" DESTINO
done
####
echo -e "Digite a letra inicial da banda que deseja utilizar na sincronização em CAPS"
read  LETRA
LETRA_CK='[A-Z]'

            while [[ "$LETRA" != $LETRA_CK ]];
do
            read -p "Digite a letra inicial da banda que deseja utilizar na sincronização em CAPS:" LETRA
done
####
LEFT="/storage/Marcio/Mp3/${LETRA}/"
RIGHT="/data/mp3/${LETRA}/"

    if [ $DESTINO = "01" ]; then
            echo -e "`rsync -rvz ${LEFT} ${RIGHT}`; \n `ls -lha ${RIGHT}`"
else
            echo -e "`rsync -rvz ${RIGHT} ${LEFT}`; \n `ls -lha ${LEFT}`"

fi

欢迎任何改进的想法。