evaluando una cadena en csh

evaluando una cadena en csh

script1 es el siguiente

#!/bin/csh
echo $*
$*

Luego ejecuto lo siguiente en la línea de comando:

>script1 setenv VAR "/user/path" \; ls

Da salida como:

setenv VAR /user/path ; ls
setenv: Too many arguments.

¿Alguna idea para solucionarlo?

Respuesta1

Realmente no entiendo por qué querrías esto, pero tu problema es que estás intentando ejecutar una variable en lugar de evaluarla. Pruebe esto en su lugar:

#!/bin/csh
echo "$*"
eval "$*"

Entonces

script1 setenv VAR "/user/path" \; ls

No lo sé, cshpero el problema parece estar relacionado con tener dos comandos como variable. Esto funciona como se esperaba:

setenv aa "ls"
"$aa"   

Pero esto falla y necesita eval:

setenv aa "ls; echo foo"
"$aa"   

información relacionada