Wie würde man das in Unix machen?
#!/bin/sh
x=echo "Hello" | grep "^[A-Z]"
Ich will x
den Wert annehmen "Hello"
, aber dieses Skript scheint nicht zu funktionieren. Was wäre die richtige Art, etwas wie das oben genannte zu buchstabieren?
Antworten:
11 für die Antwort № 1Sie können verwenden command substitution
wie:
x=$(echo "Hello" | grep "^[A-Z]")
Du könntest auch die veraltet Rückwärts-Zitat-Stil als:
x=`echo "Hello" | grep "^[A-Z]"`
2 für die Antwort № 2
Sie können auch Shell-Interna verwenden, ohne externe Tools aufzurufen, zB case / esac
str="Hello"
case "$str" in
[A-Z]* ) x=$str;;
esac
0 für die Antwort № 3
Stellen Sie sicher, dass Sie die erwartete Regex-Unterstützung verwenden grep
, Grep hat viele Varianten über Unix.