/ / Ist es möglich, Variablen, die den Ausdrücken in UNIX entsprechen, zu setzen? - Unix, Shell, Variablen, SH

Ist es möglich, Variablen, die den Ausdrücken in UNIX entsprechen, zu setzen? - Unix, Shell, Variablen, SH

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 № 1

Sie 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.