Ngoài ra, có thể viết chương trình C gọi lệnh mong muốn và lưu nó vào / 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;
}
Để biên dịch nó, hãy chuyển đến thư mục lưu nguồn (trong bash) và thực thi (bạn có thể cần sudo):
gcc ./gb.c -o /usr/bin/gb
Sau khi nghiên cứu sâu hơn ở đây , tôi nhận ra rằng chỉ cần ném lệnh của bạn vào system()
sẽ không hoạt động đối với bash được xây dựng trong các lệnh. Đó là lý do tại sao bạn cần tạo một thể hiện của một bash tương tác và lặp lại các lệnh của bạn với nó. Nó quá phức tạp và có thể vô dụng, trừ khi bạn muốn, giả sử, rút ngắn cuộc gọi đến một kịch bản shell (some_script
thay vì sh ~/radgeRayden/Scripts/some_script
).
Tham chiếu cho hàm system ()
alias gb='cd /media/Dan/evolution'