Jak mohu opravit to, pokud shell prohlášení s "[" příkaz? [duplicitní]

0

Otázka

Proč mám tyto chyby:

-bash: [: missing `]'
grep: ): No such file or directory
grep: ]: No such file or directory

když jsem spustit tento v sh nebo bash:

if [ \( lsusb -t | grep -q 'qmi_wwan' \) ]; then
    echo 'yes'
else
    echo 'no'
fi
linux sh shell
2021-11-22 00:14:06
1

Nejlepší odpověď

0

Pokud chcete zkontrolovat ukončovací kód grep příkaz, použijte ji namísto na [ příkaz:

if lsusb -t | grep -q 'qmi_wwan'
then
  echo "Yes"
fi
2021-11-22 00:27:23

Nechtěl jsem psát úplný, jestliže prohlášení, které obsahuje logické operátory a další prohlášení. Ale tato podmnožina příkazů vrací stejnou chybu, takže jsem neměl obsahovat zbytek, aby se minimalizovalo zmatek.
A6EE

Myslíš tím "nejsem si jistý, jak aplikovat toto řešení, protože nevím, jak používat logické operátory mimo [?" Můžete použít !, || a && pro ne/nebo/i s dalšími příkazy, včetně [
that other guy

Zkontroloval jsem příkaz, aniž by [ před a funguje to v pohodě, ale chtěl jsem zjistit, proč to nefungovalo s [.
A6EE

Protože nejsi spuštěním příkazu už; jste běží [ s text z příkazu a jeho argumenty.
chepner

V jiných jazycích

Tato stránka je v jiných jazycích

Русский
..................................................................................................................
Italiano
..................................................................................................................
Polski
..................................................................................................................
Română
..................................................................................................................
한국어
..................................................................................................................
हिन्दी
..................................................................................................................
Français
..................................................................................................................
Türk
..................................................................................................................
Português
..................................................................................................................
ไทย
..................................................................................................................
中文
..................................................................................................................
Español
..................................................................................................................
Slovenský
..................................................................................................................