2014-12-06 145 views
2

我想測試傳遞給Linux shell腳本的參數數量。如果參數的數量不是24,它應該打印一些東西。不幸的是它不起作用。任何人都可以解釋我做錯了什麼?bash腳本中的參數數量

#!/bin/bash 
if [[ $# -ne 2 ]] || [[ $# -ne 4 ]]; 
then 
    echo "here"; 
fi 
+0

可能重複[檢查參數bash腳本的數量](http:// stackoverfl ow.com/questions/18568706/checking-number-of-arguments-bash-script) – Maximin 2014-12-06 18:42:22

回答

2

此時應更換邏輯OR通過邏輯AND,所以:

#!/bin/bash 

if [[ $# -ne 2 && $# -ne 4 ]]; then 
    echo "here" 
fi 

在算術形式:

#!/bin/bash 

if (($# != 2 && $# != 4)); then 
    echo "here" 
fi 

正如你所看到的,沒有必要使用2 [[ ]]

1

邏輯。

if [[ $# -ne 2 ]] && [[ $# -ne 4 ]]; then 
    echo "here" 
fi 
+0

是的,我讀過它,並且我完全理解了這個問題 – ciuak 2014-12-06 18:42:13

+0

我在bash中試過了,它運行了 – ciuak 2014-12-06 18:43:17

+0

它是'-ne'(不等於) – ciuak 2014-12-06 18:45:27