É possível usar caracteres especiais em um nome de função do shell?

0

Eu tenho que criar a função no shell script, que o nome da função deve conter os caracteres especiais. como

     >()
      {
       echo $1 $2
      }

Aqui o nome da minha função é > , se for possível, como posso dar, como acima eu tentei isso Mas será através do erro

    
por Bhuvanesh 25.03.2015 / 11:10

2 respostas

1

O > tem um significado especial no shell, é um operador de redirecionamento, consulte a página de manual:

[n]> file Redirect standard output (or n) to file.

O nome de uma função pode conter apenas letras (a-z ou A-Z), dígitos (0-9) ou o caractere de sublinhado (_). Também não deve começar com um dígito. (consulte Comando de definição de função e Nome )

    
por 25.03.2015 / 11:35
1

A maioria dos shells restringem o nome de funções para conter apenas caracteres que não precisam ser citados, o que exclui > .

Mesmo nos poucos shells que permitem > como um nome de função (eu sei apenas de zsh), definir uma função chamada > só teria um efeito se você chamasse > como um comando (o que exigiria citando, por exemplo, executando \> ou ">" ou '>' ). Não mudaria como o redirecionamento funciona.

Nenhum dos shells usuais tem uma maneira de configurar o que acontece se alguma parte subsequente do script executar um redirecionamento. Se você precisa desse tipo de coisa, um shell não é uma linguagem suficientemente flexível. Mas provavelmente há uma maneira melhor de resolver qualquer problema que você esteja tentando resolver - e possivelmente um que pode ser resolvido em um shell script.

    
por 26.03.2015 / 01:12