Como escrever um argumento para um comando existente

2

O que eu quero fazer é escrever um argumento para tr que inverta o texto dos códigos de rot13.

Eu quero fazer isso

tr 'A-Za-z' 'N-ZA-Mn-za-m'

Apenas isso

tr -r

E o argumento -r faz o que o primeiro comando faz

    
por Matt Jaccino 14.09.2017 / 15:35

1 resposta

3

Use uma função shell que envolva o comando tr :

tr () {
  if [[  == "-r" ]]; then
    shift
    set -- '[A-Za-z]' '[N-ZA-Mn-za-m]' "$@"
  fi
  command tr "$@"
}

Verifique se os trabalhos "regulares" funcionam:

$ echo "Hello World!" | tr 'aeiou' 'AEIOU' 
HEllO WOrld!

E agora, use a opção rot13

$ echo "Hello World!" | tr 'aeiou' 'AEIOU' | tr -r
URyyB JBeyq!
$ echo "Hello World!" | tr 'aeiou' 'AEIOU' | tr -r | tr -r
HEllO WOrld!
    
por glenn jackman 14.09.2017 / 15:41