Więcej
Jak ustawić zmienną na wyjście polecenia w Bashu?
Mam dość prosty skrypt, który jest czymś takim jak poniższe:
#!/bin/bash
VAR1="$1"
MOREF='sudo run command against $VAR1 | grep name | cut -c7-'
echo $MOREF
Kiedy uruchamiam ten skrypt z linii poleceń i przekazuję mu argumenty, nie otrzymuję żadnych danych wyjściowych. Jednakże, kiedy uruchamiam komendy zawarte w zmiennej $MOREF
, jestem w stanie uzyskać dane wyjściowe.
Jak można pobrać wyniki komendy, która ma być uruchomiona w skrypcie, zapisać je do zmiennej, a następnie wyświetlić tę zmienną na ekranie?
1497
3
Oprócz backticków
możesz użyćcommand
$(command)
lub"$(command)"
, które uważam za łatwiejsze do odczytania i pozwalające na zagnieżdżanie.Cytowanie (
"
) ma znaczenie dla zachowania wartości wielowierszowych.Właściwy sposób to
Jeśli zamierzasz użyć apostrofu, potrzebujesz
``, a nie `'
. Ten znak jest nazywany "backticks" (lub "grave accent").Na przykład tak:
Tylko po to, żeby być innym: