Man aktualizacja bash mówi dotyczące opcji -c:nie wydaje się użyć opcji -c bash z argumentami po Opcja -c ciąg
-c string
Jeśli opcja-c
jest obecny, to polecenia są odczytywane zstring
. Jeśli istnieją argumenty po ciągu znaków, są one przypisane do parametrów pozycyjnych , począwszy od$0
.
Więc biorąc pod uwagę, że opis, to myślę, że coś jak to powinno działać:
bash -c "echo arg 0: $0, arg 1: $1" arg1
ale wyjście tylko pokazuje następujący więc wygląda na to argumenty po ciąg -c
nie są przypisane do parametry pozycyjne.
arg 0: -bash, arg 1:
Używam dość starożytną bash (na Fedorze 4):
[root @ dd42 pnia] # bash --version
GNU bash, wersja 3.00.16 (1) - uwalnianiu (i386-RedHat-linux-gnu)
Copyright (C) 2004 Free Software Foundation, Inc.
Co ja naprawdę staramy się robić o to, aby wykonać trochę skrypt powłoki z argumentów. Myślałem, że -c
wygląda bardzo obiecująco, stąd powyższy problem. Zastanawiałem się nad używaniem eval, ale nie sądzę, żebym mógł przekazać argumenty do rzeczy, które następują po eval. Jestem też otwarty na inne sugestie.