bash trick - prefixing a command?

Rodolfo Alcazar rodolfo.alcazar at padep.org.bo
Thu Oct 27 16:40:19 UTC 2005


On Tue, 2005-10-25 at 18:32 +0000, rrmalloy at comcast.net wrote:
> Have you looked at the GNU readline library?
> It may give you enough command line editing and history features
> for you purpose.

Readline stuff seems nice. As a test, just for make this lib work, you
can base your code on (based on the links and suggestions of this same
thread):

[rodolfoap] /home/rodolfoap/dat/devel > cat rl.c
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <signal.h>
#include <readline/readline.h>
#include <readline/history.h>
#define PROMPT "$ "

void handle_signal(int signo) {
        printf("\n%s", PROMPT);
        fflush(stdout);
}
int main(int argc, char **argv, char **envp){
        signal(SIGINT, SIG_IGN);
        signal(SIGINT, handle_signal);
        char *temp = NULL;
        while ((temp=readline(PROMPT)) != NULL) {
                if (*temp) {
                        system(temp);
                        add_history (temp);
                }
                if (strcmp (temp, "exit") == 0){
                        free(temp);
                        break;
                }
                free (temp);
        }
        return 0;
}
[rodolfoap] /home/rodolfoap/dat/devel > gcc rl.c -lcurses -lreadline
-lhistory -o rl
[rodolfoap] /home/rodolfoap/dat/devel > ./rl
$ mc (NOTE: IT WORKS!, gets the screen fine!)

$ pwd
/home/rodolfoap/dat/devel
$ ls /
bin  boot  data  dev  etc  home  lib  local  lost+found  media  misc
mnt  net  opt  proc  root  rpm  sbin  selinux  srv  sys  tmp  usr  var
$ ls -l /
total 164
drwxr-xr-x    2 root      root       4096 Oct 27 08:18 bin
drwxr-xr-x    3 root      root       4096 Oct 21 08:06 boot
drwxr-xr-x    8 rodolfoap rodolfoap  4096 Oct 21 23:00 data
drwxr-xr-x    9 root      root       4300 Oct 27 07:04 dev
drwxr-xr-x  100 root      root      12288 Oct 27 08:18 etc
drwxr-xr-x    3 root      root       4096 Sep 30 17:42 home
drwxr-xr-x   11 root      root       4096 Oct 27 08:17 lib
drwxr-xr-x    5 rodolfoap rodolfoap  4096 Oct 10 10:35 local
drwx------    2 root      root      16384 Jul 11 13:30 lost+found
drwxr-xr-x    5 root      root       4096 Oct 27 07:04 media
drwxr-xr-x    2 root      root          0 Oct 27 07:03 misc
drwxr-xr-x    2 root      root       4096 May 23 00:28 mnt
drwxr-xr-x    2 root      root          0 Oct 27 07:03 net
drwxr-xr-x    3 root      root       4096 Jul 20 07:25 opt
dr-xr-xr-x  153 root      root          0 Oct 27 03:03 proc
drwxr-x---   55 root      root       4096 Oct 27 08:46 root
drwxr-xr-x    5 rodolfoap rodolfoap  4096 Sep 30 16:48 rpm
drwxr-xr-x    2 root      root      12288 Oct 18 07:10 sbin
drwxr-xr-x    2 root      root       4096 Jul 11 17:31 selinux
drwxr-xr-x    2 root      root       4096 May 23 00:28 srv
drwxr-xr-x   10 root      root          0 Oct 27 03:03 sys
drwxrwxrwt   21 root      root       4096 Oct 27 12:32 tmp
drwxr-xr-x   17 root      root       4096 Aug 17 08:09 usr
drwxr-xr-x   27 root      root       4096 Oct 25 07:09 var
$

Good luck!
--
Rodolfo Alcazar - rodolfo.alcazar at padep.org.bo
Netzmanager Padep, GTZ
591-70656800, -22417628, LA PAZ, BOLIVIA
http://otbits.blogspot.com
--
New systems generate new problems.






More information about the fedora-list mailing list