Chcę utworzyć ciąg komend bash za pomocąprzekierować i / lub potok i użyć go do wyświetlenia łańcucha poleceń lub wykonania łańcucha poleceń. Proste polecenie bez przekierowania lub działania potoku, ale ciąg poleceń z przekierowaniem lub potokiem nie działa. Na przykład,
command="echo 1"
$command
echo "$command"
wyświetliłoby się
1
echo 1
Jednak,
command="echo 1 | cat"
$command
echo "$command"
wyświetliłoby się
1 | cat
echo 1 | cat
ale ja chcę
1
echo 1 | cat
Podobnie w przypadku przekierowania
command="echo 1 | cat > 1.out"
$command
echo "$command"
wyświetliłoby się
1 | cat > 1.out
echo 1 | cat > 1.out
ale ja chcę
echo 1 | cat > 1.out
z nowym plikiem o nazwie „1.out” z zawartością 1.
Czy istnieje sposób na osiągnięcie tego, czego chcę?
Odpowiedzi:
5 dla odpowiedzi № 1Jeśli chcesz, aby powłoka oceniła łańcuch jako polecenie, powiedz mu, aby to zrobił:
eval "$command"
echo "$command"