Alternatif olarak, istenen komutu çağıran bir C programı yazmak ve / usr / bin dosyasına kaydetmek mümkündür.
#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;
}
Derlemek için kaynağın kaydedildiği dizine (bash olarak) gidin ve çalıştırın (sudo'ya ihtiyacınız olabilir):
gcc ./gb.c -o /usr/bin/gb
Burada daha fazla araştırma yaptıktan sonra , yalnızca emrinizi atmanın system()
bash emirlerde işe yaramayacağını anladım . Bu yüzden etkileşimli bir bash örneği oluşturmanız ve komutlarınızı ona yansıtmanız gerekir. Bu sadece aşırı karmaşık ve muhtemelen işe yaramaz, istemediğiniz sürece, bir kabuk betiğini ( some_script
kısaca sh ~/radgeRayden/Scripts/some_script
) kısaltmak istemeyiz .
System () işlevi için referans
alias gb='cd /media/Dan/evolution'