Wewnątrz skryptu bash, chciałbym przeanalizować zero, jeden lub dwa parametry (skrypt może je rozpoznać), a następnie przekazać pozostałe parametry do polecenia wywoływanego w skrypcie. Jak mogę to zrobić?Jak przekazać parametry do innych poleceń w skrypcie Bash?
92
A
Odpowiedz
153
Użyj shift
wbudowane polecenie, aby "jeść" argumentów. Następnie wywołaj proces potomny i przekaż go argumentowi "[email protected]"
, aby uwzględnić wszystkie pozostałe argumenty. Zwróć uwagę na cytaty, powinny one być przechowywane, ponieważ powodują, że rozszerzenie listy argumentów jest prawidłowo cytowane.
18
atakujących wykorzystuje przesunięcia polecenie:
np shifttest.sh:
#!/bin/bash
echo $1
shift
echo $1 $2
shifttest.sh 1 2 3 produkuje
1
2 3
7
bash obsługuje parametry podzbiorów (patrz Subsets and substrings), dzięki czemu można wybrać, które parametry do procesu/pass tak:
otwarty nowy plik i go edytować: Vim r.sh
echo "params only 2 : ${@:2:1}"
echo "params 2 and 3 : ${@:2:2}"
echo "params all from 2: ${@:2:99}"
go uruchomić :
chmod u+x r.sh
./r.sh 1 2 3 4 5 6 7 8 9 10
wynik jest:
params only 2 : 2
params 2 and 3 : 2 3
params all from 2: 2 3 4 5 6 7 8 9 10
Powiązane problemy
- 1. Jak przekazać opcjonalne parametry do innego polecenia w skrypcie Bash?
- 2. Jak iterować parametry pozycyjne w skrypcie Bash?
- 3. Czy mogę przekazać parametry do UDF w skrypcie Pig?
- 4. Jak przekazać parametry do podzbioru()?
- 5. Jak przekazać argument tablicowy do skryptu Bash
- 6. Jak przekazać parametry do OnClickListener?
- 7. Jak przekazać parametry do ServiceHost
- 8. Jak przekazać parametry do zapytania?
- 9. Jak przekazać parametry do budowania maven za pomocą pom.xml?
- 10. Jak przekazać tablicę do funkcji bash
- 11. Jak przekazać parametry do testów w pliku wejściowym Automake?
- 12. Jak przekazać parametry z kontrolera do szablonu?
- 13. Jak przekazać parametry init do HttpSessionListener?
- 14. Jak przekazać parametry do funkcji AWS Lambda
- 15. Jak przekazać parametry do 2 EventEmitter angular2
- 16. Jak przekazać parametry adresu URL do Vuejs
- 17. Jak przekazać parametry do zdarzenia ładowania obrazu?
- 18. Jak chciałbym przekazać dodatkowe parametry do MatchEvaluator
- 19. Jak przekazać parametry do klas css
- 20. Zend Form: Jak przekazać parametry do konstruktora?
- 21. Jak przekazać parametry do niestandardowej akcji?
- 22. Marionette.CompositeView, jak przekazać parametry do Marionette.ItemView
- 23. Jak przekazać parametry do tabeli Valued funkcja
- 24. Jak przekazać parametry z basha do skryptu php?
- 25. Wyrażenie regularne w skrypcie Bash
- 26. Jak dodać parametry do aliasu bash?
- 27. Bash: Take pierwszej linii poleceń argumentu i przekazać resztę
- 28. Jak przekazać zmienną Bash do Pythona?
- 29. jak przekazać parametry spocząć pewny
- 30. Czytaj zmienne Bash w skrypcie Pythona
faktycznie "$ @" jest bezpieczniejsze niż $ * – pixelbeat
Jaka jest różnica? –
@pixelbeat: Dzięki, dobry połów. Edytowałem. @ Łukasz Lew: zobacz stronę z linkami do podręcznika. :) Zasadniczo obsługuje cytowanie lepiej. – unwind