Próbuję napisać skrypt, aby przechwycić dane wejściowe użytkownika. Skrypt powinien zignorować sprawę.
Rozważ ten skrypt foo.sh
:
if [ $1 == "string" ]; then
echo true
else
echo false
fi
Jeśli wartość wejściowa foo.sh
to STRING
lub StRiNg
wynik będzie fałszywy.
Jak mogę zignorować przypadek w takim if
stanie?
[[ "$1" == "string" ]]
zamiast[ $1 == "string" ]
. W przeciwnym razie wpadniesz w kłopoty, jeśli$1
zawiera spacje lub jest pusty.Odpowiedzi:
Zakładając, że używasz
bash 4.0+
:W przeciwnym razie
tr
lubawk
powinien działać:Streszczenia:
Awk pobiera dane wejściowe i po prostu drukuje
$0
(całą linię wejściową) po użyciu wbudowanejtolower()
funkcji.Tr wygląda całkiem zrozumiale, ale daj mi znać, jeśli masz pytania.
źródło
"$a"
declare
ma funkcję małych liter:źródło
nocasematch
opcja powłoki, której można użyć.