BASH: cómo pasar argumentos a un alias: NO PUEDE USAR UNA FUNCIÓN - sintaxis de condicionales de Bash

Esta pregunta difiere en que la respuesta clásica "usar una función" NO funcionará. Agregar una nota a una pregunta Alias existente es equivalente a enviar un correo electrónico de sugerencia a Yahoo.

Estoy tratando de escribir macros para sortear la horrenda sintaxis IF de BASH. Ya sabes, el [, [[, ((... BASH: el PHP del control de flujo ... solo agrega otro paréntesis. Todavía estoy esperando el formulario "((((((((. No estoy seguro) por qué BASH no reutilizó "(", ya que "(" no tiene una semántica real en la instrucción if.

La idea es haber nombrado alias para [, [[y ((ya que cada una de estas funciones test-ish) tiene una sintaxis frustrantemente diferente. Sinceramente, nunca puedo recordar cuál es cuál (¿cómo PODRÍAS? ¡Es completamente ad hoc! ), y buena suerte tratando de buscar en Google "[[" ".

Luego usaría los nombres como mnemotécnicos y el alias para deshacerme de las terribles diferencias en los requisitos de espacio. Ejemplos: "whattoyoucallthisIf" para "((", "shif" (para shell si), "mysterydoublesquarebacketif" para ese horrible [[cosa que parece hacer casi lo mismo que [, pero no lo hace.

Por lo tanto, yoDEBE tener algo de la forma:

alias IFREPLACEMENT = "if [\ $ @]; then"

Pero, obviamente, no \ $ @, lo que consolidaría en la lista de argumentos actual al shell que ejecuta el alias.

Las funciones seránno trabajar en este caso, como la función:

function IFREPLACEMENT {
    if [ $@ ]; then
}

es ilegal.

En CSH, se podría decir alias abc blah blah! *! 1, etc. ¿Hay ALGO en BASH que sea similar (no,! * No funciona en BASH)?

O estoy ["Acabo de tener suerte"]; ?

Como comentario aparte, he aquí algunas de las frustrantes diferencias que implican las funciones test-ish en BASH que estoy tratando de evitar mediante el uso de alias bien definidos que las personas tendrían que usar en lugar de elegir "[[", "[" o "((":

"((" es realmente espeluznante ... si una variable contiene el nombre de otra variable, se deriva para tantos niveles como sea necesario)"((" no requiere espacios como '[' y '[[' '"((" no requiere "$18$quot; para que las variables sean desreferenciadas['s "-gt" es numérico o muere. [[parece tener restricciones arbitrarias.'[' y '[[' use ">" (etc.) como operadores de comparación LEXICAL, pero tienen reglas frustrantemente diferentes que lo hacen MIRAR como si estuvieran haciendo comparaciones numéricas cuando realmente no lo están.para una variable: a = "" (valor vacío), [$ a == 123] es un error de sintaxis, pero ((a == 123)) no lo es.

Respuestas a la pregunta(2)

Su respuesta a la pregunta