Como alternativa, é possível escrever um programa C que chama o comando desejado e salvá-lo em / usr / bin.
#include <stdio.h>
#include <string.h>
int main () {
char command[50]; //notice you can change this to fit your needs
int return_val;
strcpy( command, "echo \"cd /media/Dan/evolution\" | bash -i" );
return_val = system(command);
//this is equivalent to entering the command in a new bash,
//which will return and exit
return return_val;
}
Para compilá-lo, vá para o diretório em que a fonte foi salva (no bash) e execute (você pode precisar do sudo):
gcc ./gb.c -o /usr/bin/gb
Após mais pesquisas aqui , percebi que simplesmente inserir seu comando system()
não funcionará para comandos bash incorporados. É por isso que você precisa criar uma instância de um bash interativo e repetir seus comandos. É muito complicado e provavelmente inútil, a menos que você queira, digamos, encurtar uma chamada para um script de shell (em some_script
vez de sh ~/radgeRayden/Scripts/some_script
).
Referência para a função system ()
alias gb='cd /media/Dan/evolution'