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é, csh
pero 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"