Perguntas sobre 'shell'

1
resposta

Diferença entre escrita 'function Name {…; } ',' Name () {…; } 'e' function Name () {…; } em bash [duplicado]

Você pode escrever um bash de várias maneiras: function JoinStrings { ...; } Ou function JoinStrings () { ...; } Ou JoinStrings () { ...; } Existe alguma diferença entre essas funções? Por que existem 3 maneira...
04.12.2015 / 00:39
1
resposta

Como adicionar meu MATLAB ao PATH?

Eu li este tópico sobre como adicionar corretamente os caminhos: Como adicionar corretamente um caminho ao PATH? Eu já exportei o caminho /usr/local/proc_mt/bin:usr/local/MATLAB/MATLAB_Production_Server/R2015a/bin Ainda não sei co...
23.11.2015 / 15:15
1
resposta

shell script para juntar 2 arquivos com base em 2 colunas e se uma correspondência for encontrada, então escreva alguns campos

abc.csv TBL_NAME,SANDBOX_NAME,SCRIPT_NAME ccti_prod_attdnl_ext,abs_ext,101_ext_table.m_diag.pset ccti_prod_attdnl_ext,abs_ids,101_ext_table.m_diag.pset xyz.csv PID,SANDBOX_NAME,SCRIPT_NAME 11065,abc_ext,101_ext_table.m_diag.pset 11066,...
30.10.2015 / 15:45
2
respostas

Qual é a diferença entre script bash e shell script [duplicado]

Como existem diferentes tipos de shells, Qual é a diferença entre os scripts bash e shell e existe algum script compatível em qual write pode ser executado em todos os shells do unix?     
16.10.2015 / 11:19
6
respostas

Parêntese na expr aritmética: 3 * (2 + 1) ______ qstntxt ___

%code% parece não gostar de parênteses (usado em matemática para especificar a prioridade do operador):

%pre%

Como expressar a prioridade do operador no bash?

    
______ azszpr149832 ___

Outra maneira de usar %code% bash builtin:

%pre%

Nota

Como @ Stéphane Chazelas apontou , em %code% você deve usar %code% para fazer aritmética %code% ou %code% para legibilidade.

Para portabilidade, use %code% como @Bernhard answer .

    
______ azszpr149830 ___

Você pode usar a expansão aritmética.

%pre%

Na minha opinião pessoal, isso parece um pouco melhor do que usar %code% .

De %code%

%bl0ck_qu0te%     
______ azszpr149916 ___

Não há razão para usar %code% para aritmética em shells modernos.

POSIX define o operador de expansão %code% . Então você pode usar isso em todos os shells compatíveis com POSIX (o %code% de todos os Unix-gostos modernos, traço, bash, yash, mksh, zsh, fino, ksh ...).

%pre%

%code% também introduziu um %code% builtin que é transmitido com o mesmo tipo de expressão aritmética, não expande para algo, mas retorna um status de saída com base em se a expressão é resolvida como 0 ou não, como em %code% :

%pre%

No entanto, como a cotação a torna inábil e não muito legível (não na mesma proporção que %code% , é claro), %code% também introduziu uma forma alternativa %code% :

%pre%

, que é muito mais legível e deve ser usado em seu lugar.

%code% e %code% só estão disponíveis em %code% , %code% e %code% . A sintaxe %code% deve ser preferida se a portabilidade para outros shells for necessária, %code% é necessário apenas para shells pré-POSIX semelhantes a Bourne (normalmente o shell Bourne ou versões antigas do shell Almquist).

Na frente não-Bourne, existem alguns shells com operador aritmético integrado:

  • %code% / %code% (na verdade, o primeiro shell Unix com avaliação aritmética incorporada):

    %pre%
  • %code% (com base em %code% )

    %pre%
  • como uma nota de história, a versão original do shell Almquist, como publicado no usenet em 1989, tinha um %code% construído (na verdade, mesclado com %code% ), mas foi removido posteriormente.

______ azszpr149991 ___

%code% é um comando externo, não é uma sintaxe especial do shell. Portanto, se você quiser que %code% veja os caracteres especiais do shell, será necessário protegê-los da análise do shell, citando-os. Além disso, %code% precisa que cada número e operador sejam passados como um parâmetro separado. Assim:

%pre%

A menos que você esteja trabalhando em um antigo sistema unix dos anos 1970 ou 1980, há muito poucas razões para usar %code% . Antigamente, os shells não tinham uma maneira interna de realizar aritmética, e você precisava chamar o utilitário %code% . Todos os shells POSIX possuem aritmética interna por meio da sintaxe expansão aritmética .

%pre%

A construção %code% se expande para o resultado da expressão aritmética (escrita em decimal). Bash, como a maioria das shells, suporta apenas módulos aritméticos inteiros 2 64 (ou módulo 2 32 para versões mais antigas do bash e algumas outras shells em máquinas de 32 bits). p>

O Bash oferece uma sintaxe de conveniência adicional quando você deseja realizar atribuições ou para testar se uma expressão é 0, mas não se importa com o resultado. Esta construção também existe em ksh e zsh, mas não em sh simples.

%pre%

Além da aritmética inteira, %code% oferece algumas funções de manipulação de string. Eles também são incluídos pelos recursos de shells POSIX, exceto por um: %code% testa se a string corresponde ao regexp especificado. Um shell POSIX não pode fazer isso sem ferramentas externas, mas o bash pode com %code% (com um sintaxe diferente de regexp - %code% é uma ferramenta clássica e usa BRE, bash usa ERE).

A menos que você esteja mantendo scripts executados em sistemas de 20 anos, não é necessário saber que %code% já existiu. Use aritmética de shell.

    
______ azszpr149824 ___

Use parênteses com aspas:

%pre%

As citações evitam que o bash interprete os parênteses como a sintaxe bash.

    
______ azszpr349827 ___

Se você tiver bc ...

%pre%     
___

expr parece não gostar de parênteses (usado em matemática para especificar a prioridade do operador): expr 3 * (2 + 1) bash: syntax error near unexpected token '(' Como expressar a prioridade do operador no bash?     
12.08.2014 / 06:09
7
respostas

Qual é a diferença entre $ * e $ @?

Considere o seguinte código: foo () { echo $* } bar () { echo $@ } foo 1 2 3 4 bar 1 2 3 4 Produz: 1 2 3 4 1 2 3 4 Estou usando o Ksh88, mas também estou interessado em outros shells comuns. Se você conhece alguma...
25.06.2012 / 09:51
4
respostas

Sobre a execução de um programa python em um script de shell que está agendado no crontab

Eu tenho um problema com relação ao crontab. Eu tenho um script chamado checker.sh e quero programá-lo para que seja executado a cada minuto: * * * * * sh /home/pi/checker.sh Eu tenho o script aqui: Oconceitodestescriptveiodaqui: Linux Sc...
15.06.2015 / 19:54
0
respostas

Onde o caractere EOF é processado quando é enviado pela conexão telnet

Vamos supor que estou me conectando ao servidor telnet, onde o bash está sendo executado. Estou executando o comando cat > /tmp/qqq ; digitando algum conteúdo de um arquivo e finalmente enviando 0x0a 0x04 que significa EOF. A questão é:...
17.06.2015 / 20:54
1
resposta

Como ler e fazer um min / max / avg a partir de um fluxo NMEA

Eu tenho uma estação meteorológica anexada ao meu dispositivo cuspindo NMEA 0183 em /tty/USB0 Eu já classifiquei como analisar os dados e fazer eco do que eu quero em um script. O que preciso fazer agora é gravar o arquivo /tty/USB0...
06.07.2015 / 23:38
0
respostas

Imprimindo informações de autocomplete na opção atual no shell de peixe

Ao escrever um comando com a opção - e pressionar a guia, uma lista de possíveis conclusões com breves explicações sobre o que as opções fazem é exibida. Existe uma maneira de fazer com que essa lista também contenha a opção digitada atualmen...
11.12.2016 / 11:08