Saída estranha por declaração e matriz -- bash campo com scripts camp askubuntu Relacionado O problema

Weird output by declare and array


2
vote

problema

português

Eu estou tentando produzir os valores do elemento da matriz, mas estou recebendo saída estranha. Por favor, dê uma olhada nisso e me ajude a resolvê-lo. Obrigado.

  n=2 declare -a myarray[$n] myarray[0]=hey myarray[1]=hello myarray[2]=bye for i in ${myarray[@]} do         echo $i done    

Saída:

  robin@robin-VirtualBox:~/lx$ sh array.sh array.sh: 2: array.sh: declare: not found array.sh: 3: array.sh: myarray[0]=hey: not found array.sh: 4: array.sh: myarray[1]=hello: not found array.sh: 5: array.sh: myarray[2]=bye: not found array.sh: 6: array.sh: Bad substitution    
english

I am trying to output the values of array element but I am getting weird output. Please have a look at it and help me solve it. Thank you.

n=2 declare -a myarray[$n] myarray[0]=hey myarray[1]=hello myarray[2]=bye for i in ${myarray[@]} do         echo $i done 

Output:

robin@robin-VirtualBox:~/lx$ sh array.sh array.sh: 2: array.sh: declare: not found array.sh: 3: array.sh: myarray[0]=hey: not found array.sh: 4: array.sh: myarray[1]=hello: not found array.sh: 5: array.sh: myarray[2]=bye: not found array.sh: 6: array.sh: Bad substitution 
     

Lista de respostas

2
 
vote
vote
Melhor resposta
 

urxvt8 é um bash shell built e não está definido no shell sh .

Então, você deve executar seu script usando o seguinte comando:

  urxvt9   

ou adicionar, o seguinte shebang Linha no início do seu script:

  rxvt0   

Certifique-se de que seu script seja exectutável:

  rxvt1   

e executá-lo usando o seguinte comando:

  rxvt2   
 

declare is a bash shell builtin, and is not defined in the sh shell.

So, you must to run your script using the following command:

bash array.sh 

Or add, the following shebang line at the start of your script:

#!/bin/bash 

Be sure that your script is exectutable:

 chmod +x array.sh 

And run it using the following command:

./array.sh 
 
 
2
 
vote

Seu script está correto, mas digite:

  rxvt3   

em vez de rxvt4

A diferença entre rxvt5 e rxvt6 é explicado aqui .

 

Your script is correct, but type:

./array.sh 

instead of sh array.sh

The difference between ./ and sh is explained here.

 
 
   
   

Perguntas relacionadas

0  Script Shell para instalar o software e configurar a rede  ( Shell script to install software configure network ) 
Ei, eu queria saber, como, depois de uma nova instalação do Ubuntu, eu posso instalar todos os softwares essenciais (VLC, Apache, MySQL, PHP, Java, NetBeanSet...

2  Abra a pasta pai de um link simbólico por clique com o botão direito do mouse?  ( Open the parent folder of a symbolic link via right click ) 
Podemos abrir uma pasta pai de qualquer arquivo usando o script nautilus como #!/bin/bash nautilus "$1" Se eu fizer este script no link simbólico que...

22  Bash Script não executando de Crontab [Duplicate]  ( Bash script not executing from crontab ) 
. Esta pergunta já tem respostas aqui : Por que os scripts crontab não estão funcionando? ...

11  Execute scripts automaticamente no servidor após conexão SSH  ( Run scripts automatically in server after ssh connection ) 
Como executar um script automaticamente no servidor em breve após o sistema do cliente, estabeleça conexão SSH com o servidor para ex: Suponha que um usuári...

0  Estágios diferentes no Bash Programming  ( Different stages in bash programming ) 
Eu tenho um programa bash com diferentes estágios como: $stage=1 if [ stage -le 1]; then echo "execute stage 1" fi if [ stage -le 2]; then echo "execute s...

3  dpkg sem shell  ( Dpkg with no shell ) 
Como executar o dpkg sem shell? Aqui está o meu problema: Eu furo e script autorun.sh na minha chave USB. Para executar este script, criei regras em /e...

6  Minha função de bash é executada apenas uma vez por terminal aberta  ( My bash function runs only once per terminal opened ) 
Quando eu tento executar minha função bash, definida em .bashrc, por uma segunda vez no mesmo terminal, ela não funciona. O código é o seguinte: lspci6 ...

2  Como monitorar um arquivo local para alterações, aplique um regex Substituir e salve / sobrescreva em um arquivo de destino?  ( How to monitor a local file for changes apply a regex replace on it and save ov ) 
Eu gostaria de iniciar um script ou algo que assiste a um arquivo de texto para alterações. Quando o arquivo é alterado, eu quero executá-lo através de um ana...

9  Como desligar o Ubuntu depois (2 horas) de ocioso?  ( How to shutdown ubuntu after 2 hours of idle ) 
em execução: xubuntu 14.04 32bit. Eu li vários desatualizados, não trabalhando, trabalhando diferente que quero respostas aqui e em outro lugar. Eu tinha um...

135  Como executar um script apenas clicando duas vezes como arquivos .exe no Windows?  ( How to execute a script just by double clicking like exe files in windows ) 
Como posso fazer um executável de script bash clicando duas vezes como .exe arquivos no Windows? Eu tentei Criando um lançador e atribuir o script a ele , ...




© 2022 pergunte.org All Rights Reserved. Casa de perguntas e respostas todos os direitos reservados


Licensed under cc by-sa 3.0 with attribution required.