bağımsız denetleme sayısı script bash
Eğer senaryomu çok fazla (veya çok az) bağımsız değişkenleri alır eğer bir hata mesajı yazdırmak için çalışıyorum.
Aşağıdaki kodu denedim:
#!/bin/bash
echo Script name: $0
echo $# arguments
if [$# -ne 1];
then echo "illegal number of parameters"
fi
Bilinmeyen bir nedenden dolayı aşağıdaki hata var:
test: line 4: [2: command not found
Neyi yanlış yapıyorum? (Bash tamamen yeni değilim)
CEVAP
Tıpkı herhangi bir başka basit komut, [ ... ]
test
bağımsız değişkenler arasında boşluk gerektirir.
if [ "$#" -ne 1 ]; then
echo "Illegal number of parameters"
fi
Ya
if test "$#" -ne 1; then
echo "Illegal number of parameters"
fi
Bash, alıntı bu değişkenleri word yarma ve yol genişletme yapmaz yerine [[ ]]
kullanmayı tercih zaman bir ifadenin bir parçası değilse gerekli olmayabilir.
[[ $# -ne 1 ]]
Aynı zamanda, desen eşleştirme (extglob
ile genişletilmiş desen eşleştirme) ve düzenli ifade eşleştirme gruplandırma tırnaksız durumu gibi diğer bazı özellikleri vardır.
Aşağıdaki örnek, eğer argümanlar geçerli olup olmadığını kontrol eder. Tek bir tartışma ya da iki sağlar.
[[ ($# -eq 1 || ($# -eq 2 && $2 == <glob pattern>)) && $1 =~ <regex pattern> ]]
Saf aritmetik ifadeler kullanarak (( ))
bazı olabilir hala daha iyi olabilir, ama onlar hala mümkün [[ ]]
aritmetik operatörler gibi -eq
, -ne
, -lt
, -le
, -gt
, veya -ge
yerleştirerek ifadesi olarak tek bir dize bağımsız değişken:
A=1
[[ 'A 1' -eq 2 ]] && echo true ## Prints true.
Eğer [[ ]]
diğer özellikleri ile birleştirmek için de ihtiyacınız varsa, yardımcı olmalıdır.
Parallelize Bash süreçlerin azami sayı...
Bir Bash script işletim sistemi tespit...
Boşlukları değiştirmek için Bash scrip...
Nasıl isteğe bağlı giriş bağımsız deği...
Nasıl bağımsız bir Bash komut dosyası ...