Sistema de variables para inputs
Publicado: 2017-07-11 02:00 @125
Hola chicos, bueno, al grano...
Tengo un problemilla. Estoy intentando hacer un sistema de variables que se use en los inputs, tal como las variables de bash, y se me había ocurrido algo tal que así:
### He resumido un poco el script porque tiene 500 líneas ###
Paso 1: Exportar la variable
El usuario introduce #Export nombre_de_la_variable variable y se escribe en un .txt en el directorio /home/usuario_que_lo_haga o en /etc/ si es root.
Paso 2: Todo esto pasa en un ciclo while que captura la variable $CMD todo el rato, así que en el siguiente ciclo se ponen en uso las variables. Si no encuentra un archivo de variables, lo crea.
¿Está bien como lo hago? Si estos hashes están bien creados, ¿cómo podría identificarlos en el input y sustituirlos por su valor? ¿Hay algún módulo que haga esto?
¡Gracias por adelantado!
Tengo un problemilla. Estoy intentando hacer un sistema de variables que se use en los inputs, tal como las variables de bash, y se me había ocurrido algo tal que así:
### He resumido un poco el script porque tiene 500 líneas ###
Paso 1: Exportar la variable
El usuario introduce #Export nombre_de_la_variable variable y se escribe en un .txt en el directorio /home/usuario_que_lo_haga o en /etc/ si es root.
Using perl Syntax Highlighting
- my $CMD = <STDIN>;
- my $USER = POSIX::cuserid();
- chomp $CMD ;
- my @CMD = split(/\s+/, $CMD);
- elsif (@CMD[0] eq "#Export") {
- my $variable_nom = "@CMD[1]";
- my $variable_eq = "@CMD[2]";
- if ($USER eq "root"){
- open (VARLIST, ">> /etc/rlsh_varlist.txt");
- print VARLIST "@CMD[1] @CMD[2]\n";
- close VARLIST;
- }
- else{
- open (VARLIST, ">> /home/$USER/rlsh_varlist.txt");
- print VARLIST "@CMD[1] @CMD[2]\n";
- close VARLIST;
- }
- }
Coloreado en 0.003 segundos, usando GeSHi 1.0.8.4
Paso 2: Todo esto pasa en un ciclo while que captura la variable $CMD todo el rato, así que en el siguiente ciclo se ponen en uso las variables. Si no encuentra un archivo de variables, lo crea.
Using perl Syntax Highlighting
- if ($USER eq "root") {
- if (-e "/etc/rlsh_varlist.txt") {
- open (my $READVARS, "< /etc/rlsh_varlist.txt") or warn "Variables not active\n";
- while (my $row = <$READVARS>) {
- chomp $row;
- my @VARS = split(/\s+/, $row);
- my %variables_hash = (
- "@VARS[0]" => "@VARS[1]",
- "@VARS[2]" => "@VARS[3]",
- "@VARS[4]" => "@VARS[5]",
- );
- }
- close $READVARS;
- }
- else{
- open (CREATEVARS, "> /etc/.rlsh_history");
- close CREATEVARS;
- }
- }
- else {
- $COLOR = 'bold blue' ;
- $SH_PATH = "/home/$USER";
- if (-e "$SH_PATH/rlsh_varlist.txt") {
- open (my $READVARS, "< $SH_PATH/rlsh_varlist.txt") or warn "Variables not active\n";
- while (my $row = <$READVARS>) {
- chomp $row;
- my @VARS = split(/\s+/, $row);
- my %variables_hash = (
- "@VARS[0]" => "@VARS[1]",
- "@VARS[2]" => "@VARS[3]",
- "@VARS[4]" => "@VARS[5]",
- );
- }
- close $READVARS;
- }
Coloreado en 0.002 segundos, usando GeSHi 1.0.8.4
¿Está bien como lo hago? Si estos hashes están bien creados, ¿cómo podría identificarlos en el input y sustituirlos por su valor? ¿Hay algún módulo que haga esto?
¡Gracias por adelantado!