我正在使用bash編寫腳本,它將提示用戶輸入兩個輸入。這些輸入分別分配給變量「TO_SCHEMA」和「FROM_SCHEMA」。如何清理Bash中的用戶輸入
我需要一種方法來驗證正確的輸入。我的要求如下:
每個變量將有3個可接受的值。它們對於這兩個變量都是相同的值,但是這兩個變量都必須在三個列表中,並且它們不能是相同的值。
因此,如果值是'myco','myco_int'和'teambatch',那麼這兩個變量必須是其中的一個值,但它們不能相同。
${TO_SCHEMA} = myco && ${FROM_SCHEMA} = myco_int
Pass
${TO_SCHEMA} = myco_int && ${FROM_SCHEMA} = myco_int
Fail
${TO_SCHEMA} = mco && ${FROM_SCHEMA} = myco_int
Fail
${TO_SCHEMA} = myco && ${FROM_SCHEMA} = donkey
Fail
我該如何做到這一點?
我從一個充滿AND和OR操作符的if語句開始,但它們變得很難看。我在正則表達式方面的經驗有限,而我對sed和awk的經驗並不存在,但我願意學習並嘗試其中的任何一點。 任何幫助,將不勝感激。
編輯:
我還要提到的是這個腳本僅僅是一個有點小繁瑣的一次性的任務,我必須做很多的,我很想自動化工作。如果我不是使用它的人,那麼我的團隊中會有人。所以這個輸入檢查是一個需要,而不是一個需要。如果腳本因輸入錯誤而中斷,那麼世界並不是世界末日。我只想讓它更優雅地處理不好的輸入。
編輯再次: 我感謝大家的建議,但我必須做出一些澄清。這些值實際上不是模式1,2和3.我不允許出於安全原因提供正確的名稱,但是我將它們更改爲與真實名稱更類似的值。
家庭作業嗎? – Lizardx
......如果我把事情做對了,那麼可能的組合列表就非常有限。所以可能你應該只是代表這些列表並讓用戶選擇。 – mikyra
@ Lizardx哈哈,不是一項家庭作業。只是一個傷心的SE,他以前沒有做過很多腳本,但這會是一個很好的簡單腳本,它會爲我節省很多時間,並讓其他人完成任務,如果我遇到公共汽車什麼的。 – Simoney