Función de terminal personalizada para cambiar mayúsculas y minúsculas del texto

Función de terminal personalizada para cambiar mayúsculas y minúsculas del texto

Estoy buscando una función de terminal personalizada change_caseque funcione como se muestra a continuación para ayudarme a administrar mis títulos en mi sitio web:

change_case [option] "string"

option:
    upper - STRING TO UPPERCASE
    lower - string to lowercase
    sentence - Uppercase first letter of every word, others to lowercase
    custom - String to Sentence Case except These Words if they appear as the 1st letter:
        [in,by,with,of,a,to,is,and,the]

Título de ejemplo -¿Cómo puedo hacer que aparezca la pantalla de inicio de sesión en lugar de iniciar sesión automáticamente?

superior:¿CÓMO PUEDO HACER QUE APAREZCA LA PANTALLA DE INICIO DE SESIÓN EN LUGAR DE INICIAR SESIÓN AUTOMÁTICAMENTE?

más bajo:¿Cómo puedo hacer que aparezca la pantalla de inicio de sesión en lugar de iniciar sesión automáticamente?

oración:¿Cómo puedo hacer que aparezca la pantalla de inicio de sesión en lugar de iniciar sesión automáticamente?

costumbre:¿Cómo puedo hacer que aparezca la pantalla de inicio de sesión en lugar de iniciar sesión automáticamente?

Respuesta1

Eso no es demasiado complicado:

  1. Copie el siguiente script en un archivo vacío, guárdelo como change_case(sin extensión) en ~/bin(es posible que deba crear el directorio).Hacer ejecutable el script
  2. Es posible que tengas que cerrar sesión o iniciar sesión, especialmente si el directorio aún no existe (o, alternativamente, ejecutar: source ~/.profile)
  3. Abra una ventana de terminal, pruébela ejecutando el comando:

    change_case custom this is a test case to see if all in the script works
    

    producción:

    This is a Test Case to See If All in the Script Works
    

Lo probé con todas las opciones de su pregunta (superior, inferior, oración, personalizada) y todas deberían funcionar como su ejemplo.

La secuencia de comandos

#!/usr/bin/env python3
import sys

string = sys.argv[2:]
opt = sys.argv[1]

excluded = ["in","by","with","of","a","to","is","and","the"]

if opt == "lower":
    print((" ").join(string).lower())
elif opt == "upper":
    print((" ").join(string).upper())
elif opt == "sentence":
    print((" ").join(string).title())
elif opt == "custom":
    line = []
    for s in string:
        s = s.title() if not s in excluded else s
        line.append(s)
    print((" ").join(line))

información relacionada