Używam powłoki bash w systemie Linux i chcę użyć więcej niż 10 parametrów w skrypcie powłoki
Używam powłoki bash w systemie Linux i chcę użyć więcej niż 10 parametrów w skrypcie powłoki
Odpowiedzi:
Użyj nawiasów klamrowych, aby je podkreślić:
echo "${10}"
Możesz również iterować po parametrach pozycyjnych w następujący sposób:
for arg
lub
for arg in "$@"
lub
while (( $# > 0 )) # or [ $# -gt 0 ]
do
echo "$1"
shift
done
${10}
jest zdefiniowany przez POSIX
${10}
pracę jest konieczne tylko w przypadku używania bardzo starych implementacji, które nie są zgodne ze standardami. Prawdopodobnie tylko o znaczeniu historycznym ... a jednak nigdy go nie użyłem! Przypuszczam, że ponieważ najlepsza praktyka mówi, że 10 argumentów to zdecydowanie za dużo, chyba że zostaną powtórzone, w takim przypadku będziesz je powtarzać, "$@"
a nie wyliczać.
Możesz mieć do 256 parametrów od 0 do 255 z:
${255}
sh -c 'echo ${333}' /usr/bin/*
set $(seq 2097152); echo ${2097152}
-a 1
Lub--foo=bar
). Zobaczman getopt
,man getopts
iman bash
kilka opcji, jak to zrobić.