Как да задам променлива на изхода на команда в Bash?
Имам доста прост скрипт, който прилича на следното:
#!/bin/bash
VAR1="$1"
MOREF='sudo run command against $VAR1 | grep name | cut -c7-'
echo $MOREF
Когато стартирам този скрипт от командния ред и му подам аргументите, не получавам никакъв резултат. Въпреки това, когато изпълнявам командите, съдържащи се в променливата $MOREF
, мога да получа изход.
Как може да се вземат резултатите от команда, която трябва да се изпълни в рамките на скрипт, да се запишат в променлива и след това да се изведе тази променлива на екрана?
1497
3
В допълнение към задните тирета
можете да използватеcommand
$(command)
или"$(command)"
, които намирам за по-лесни за четене и позволяват влагане.Кавичките (
"
) са от значение за запазване на многоредови стойности.Правилният начин е
Ако искате да използвате апостроф, трябва да използвате `````
, а не
'`. Този символ се нарича "заден знак" (или "гробищно ударение").Например:
Просто за да бъдем различни: