如何为现有命令编写参数

如何为现有命令编写参数

我想要做的是为 tr 编写一个参数,以反转 rot13 代码的文本。

我想做这个

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

只是这个

tr -r

并使用 -r 参数执行第一个命令的操作

答案1

使用包装该命令的 shell 函数tr

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

检查“常规” tr 是否有效:

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

现在,使用 rot13 选项

$ echo "Hello World!" | tr 'aeiou' 'AEIOU' | tr -r
URyyB JBeyq!
$ echo "Hello World!" | tr 'aeiou' 'AEIOU' | tr -r | tr -r
HEllO WOrld!

相关内容