Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Bash 是否可以检查用户';s输入是案例循环的选项之一?_Bash_Shell - Fatal编程技术网

Bash 是否可以检查用户';s输入是案例循环的选项之一?

Bash 是否可以检查用户';s输入是案例循环的选项之一?,bash,shell,Bash,Shell,我写了一个脚本,运行方式如下: ./check.sh site_location 脚本是使用案例循环为我公司的5个地理位置站点中的每一个站点编写的 我想确保用户的输入是我在case选项中添加的可能性之一,否则脚本将以错误代码退出 function usage() { echo "Usage: $0 SiteName" echo "SiteName can be: ny / ny4a / lax / ams / sg / all " } if [ $# -eq

我写了一个脚本,运行方式如下:

./check.sh site_location
脚本是使用案例循环为我公司的5个地理位置站点中的每一个站点编写的

我想确保用户的输入是我在case选项中添加的可能性之一,否则脚本将以错误代码退出

function usage() {
        echo "Usage: $0 SiteName"
        echo "SiteName can be: ny / ny4a / lax / ams / sg / all "
}

if [ $# -eq 0 ]; then
        usage
        exit 1
fi

if [ $1 != "ny" ] || [ $1 != "ny4a" ] || [ $1 != "lax" ] || [ $1 != "ams" ] || [ $1 != "sg" ] || [ $1 != "all" ]; then
        usage
        exit 1
fi
我百分之百肯定我在写第二条IF语句(“IF语句或语句或语句…”)时有错误。我怎样才能解决这个问题

编辑: 完整的脚本如下所示:

#!/bin/bash
# This scripts checks the the cache sync between the proxies in each one of the data centers.
# Script by Itai Ganot
#
ny4="ny4.company.com"
lax="lax.company.com"
ams="ams2.company.com"
sg="sg.company.com"
dcdny="nyproxy"
dcdny4a="ny4a"
dcdams="ams"
dcdlax="la"
dcdsg="sg"
checkerPath="/workspace/test/java2db/scripts/"
function usage() {
    echo "Usage: $0 SiteName"
    echo "SiteName can be: ny / ny4a / lax / ams / sg / all "
}
if [ $# -eq 0 ]; then
    usage
    exit 1
fi
#if [ $1 != "ny" ] || [ $1 != "ny4a" ] || [ $1 != "lax" ] || [ $1 != "ams" ] || [ $1 != "sg" ] || [ $1 != "all" ]; then
#   usage
#        exit 1
#fi
    case $1 in
    ny)
    echo -e "\e[36m #===# NY: #===#\e[0m"
    cd $checkerPath && ant proxy-size -Ddcd=$dcdny  | grep $ny4  | awk -F',' '{print $2}' | sort -n | uniq -c
    read -r -p "Would you like to view specific list? [y/n] " reply
    if [ "$reply" = "y" ];
        then 
            cd $checkerPath && ant proxy-size -Ddcd=$dcdny  | grep $ny4
    fi
    ;;
    ny4a)
    echo -e "\e[36m #===# NY4A: #===#\e[0m"
    cd $checkerPath && ant proxy-size -Ddcd=$dcdny4a  | grep $ny4  | awk -F',' '{print $2}' | sort -n | uniq -c
    read -r -p "Would you like to view specific list? [y/n] " reply
    if [ "$reply" = "y" ];
        then
            cd $checkerPath && ant proxy-size -Ddcd=$dcdny4a  | grep $ny4
    fi
    ;;
    lax)
    echo -e "\e[36m #===# LAX: #===#\e[0m"
    cd $checkerPath && ant proxy-size -Ddcd=$dcdlax  | grep $lax  | awk -F',' '{print $2}' | sort -n | uniq -c
    read -r -p "Would you like to view specific list? [y/n] " reply
    if [ "$reply" = "y" ];
        then
            cd $checkerPath && ant proxy-size -Ddcd=$dclax  | grep $lax
    fi
    ;;
    sg)
    echo -e "\e[36m #===# SG: #===#\e[0m"
    cd $checkerPath && ant proxy-size -Ddcd=$dcdsg  | grep $sg  | awk -F',' '{print $2}' | sort -n | uniq -c
    read -r -p "Would you like to view specific list? [y/n] " reply
    if [ "$reply" = "y" ];
        then
            cd $checkerPath && ant proxy-size -Ddcd=$dcdsg  | grep $sg
    fi
    ;;
    ams)
    echo -e "\e[36m #===# AMS: #===#\e[0m"
    cd $checkerPath && ant proxy-size -Ddcd=$dcdams  | grep $ams  | awk -F',' '{print $2}' | sort -n | uniq -c
    read -r -p "Would you like to view specific list? [y/n] " reply
    if [ "$reply" = "y" ];
        then
            cd $checkerPath && ant proxy-size -Ddcd=$dcdams  | grep $ams
    fi
    ;;
    all)
    echo -e "\e[36m #===# NY: #===#\e[0m"
    cd $checkerPath && ant proxy-size -Ddcd=$dcdny  | grep $ny4  | awk -F',' '{print $2}' | sort -n | uniq -c
    echo -e "\e[36m #===# NY4A: #===#\e[0m"
    cd $checkerPath && ant proxy-size -Ddcd=$dcdny4a  | grep $ny4  | awk -F',' '{print $2}' | sort -n | uniq -c
    echo -e "\e[36m #===# LAX: #===#\e[0m"
    cd $checkerPath && ant proxy-size -Ddcd=$dcdlax  | grep $lax  | awk -F',' '{print $2}' | sort -n | uniq -c
    echo -e "\e[36m #===# SG: #===#\e[0m"
    cd $checkerPath && ant proxy-size -Ddcd=$dcdsg  | grep $sg  | awk -F',' '{print $2}' | sort -n | uniq -c
    echo -e "\e[36m #===# AMS: #===#\e[0m"
    cd $checkerPath && ant proxy-size -Ddcd=$dcdams  | grep $ams  | awk -F',' '{print $2}' | sort -n | uniq -c
    read -r -p "Would you like to view specific list? [y/n] " reply
    if [ "$reply" = "y" ];
        then
            echo -e "\e[36m #===# NY: #===#\e[0m"
            cd $checkerPath && ant proxy-size -Ddcd=$dcdny  | grep $ny4
            echo -e "\e[36m #===# NY4A: #===#\e[0m"
            cd $checkerPath && ant proxy-size -Ddcd=$dcdny4a  | grep $ny4
            echo -e "\e[36m #===# LAX: #===#\e[0m"
            cd $checkerPath && ant proxy-size -Ddcd=$dcdlax  | grep $lax
            echo -e "\e[36m #===# SG: #===#\e[0m"
            cd $checkerPath && ant proxy-size -Ddcd=$dcdsg  | grep $sg
            echo -e "\e[36m #===# AMS: #===#\e[0m"
            cd $checkerPath && ant proxy-size -Ddcd=$dcdams  | grep $ams
    fi
    ;;
esac

您可以使用
case
压缩条件:

#!/usr/bin/env bash

function usage() {
        echo "Usage: $0 SiteName"
        echo "SiteName can be: ny / ny4a / lax / ams / sg / all "
}

case "$1" in
ny|ny4a|lax|ams|sg|all) ;;
*) usage ; exit 1; ;;
esac

您可以使用
case
压缩条件:

#!/usr/bin/env bash

function usage() {
        echo "Usage: $0 SiteName"
        echo "SiteName can be: ny / ny4a / lax / ams / sg / all "
}

case "$1" in
ny|ny4a|lax|ams|sg|all) ;;
*) usage ; exit 1; ;;
esac

使用
case
esac
构造?不需要长if.&如果您“不得不”使用if,您需要在条件之间使用
&
,而不是
|
:DUse
case
esac
构造?不需要长if.&如果你“不得不”使用if,你需要在条件之间使用
&
,而不是
|
:D