Como alternativa, é possível escrever um programa em C que chame o comando desejado e salve-o 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 compilar, vá para o diretório onde a fonte foi salva (no bash) e execute (você pode precisar do sudo):
gcc ./gb.c -o /usr/bin/gb
Depois de mais pesquisas aqui , percebi que estava jogando seu comando em system()
não vai funcionar para bash construído em comandos. É por isso que você precisa criar uma instância de um bash interativo e ecoar seus comandos para ele. É extremamente complicado e provavelmente inútil, a menos que você queira, digamos, encurtar uma chamada para um script de shell ( some_script
em vez de sh ~/radgeRayden/Scripts/some_script
).
Referência para a função system ()