$index
não pode ser incrementado assim. Tente usar:
index=$((index+1)) # Universal shell (POSIX)
ou
((index++)) # bash
Eu uso o script abaixo para ler os artigos e exibir os artigos.
echo " Please enter device no"
read -a articles
index=0
count=${#articles[@]}
echo "The number of articles are $count"
while [ $index -lt $count ]
do
echo ${articles[$index]}
index=$index+1
done
Mas a questão é, eu preciso dar artigos através dos espaços
como article1 article2 article3
?
Existe uma maneira, eu posso inserir via vírgula como article1, article2, article3
?
A matriz deve aceitar nos dois sentidos (vírgula ou espaços)?
Quaisquer ponteiros apreciados!
$index
não pode ser incrementado assim. Tente usar:
index=$((index+1)) # Universal shell (POSIX)
ou
((index++)) # bash
Defina seu próprio IFS antes de read
De man Bash
IFS : o separador de campo interno usado para dividir palavras após a expansão e para dividir as linhas em palavras com a leitura comando interno. O valor padrão é
<space><tab><newline>
$ IFS=' ,' read -a foo
cat dog sheep
$ printf '%s\n' ${foo[@]}
cat
dog
sheep
$ IFS=' ,' read -a foo
cat, dog, sheep
$ printf '%s\n' ${foo[@]}
cat
dog
sheep
Certifique-se de redefinir o IFS var para seu padrão depois disso