顯示頁面舊版反向連結Fold/unfold all回到頁頂 本頁是唯讀的,您可以看到原始碼,但不能更動它。您如果覺得它不應被鎖上,請詢問管理員。 ====== Perl 呼叫外部程式命令差異 ====== ==== system() : 呼叫後會回來繼續往下執行 ==== * Exp1. <cli>system("/usr/local/share/ca-certificates/; sudo update-ca-certificates; sudo systemctl restart docker.service");</cli> * Exp2. <cli>system("sh", "script.sh", "--help" );</cli> * Exp3. <cli>system("sh script.sh --help");</cli> ==== exec() : 呼叫後就不會回來 ==== * Exp1. <cli>exec("vi abc.txt");</cli> ==== backticks(` `) 或是 qx/ / : 呼叫後會回來, 可將執行的結果傳入變數 ==== * Exp1. $cmd_msg 內就是回傳執行的結果 <cli> $cmd_msg = `ls -l`;</cli> * Exp2. 搭配 2>&1 可讓所有訊息都導回來 <cli> $cmd_msg = `sudo apt update -y 2>&1`;</cli> * Exp3. 也可使用 qx/ / 語法<cli> $cmd_msg = qx/script.sh --option/;</cli> ===== 參考網址 ===== * https://stackoverflow.com/questions/3200801/how-can-i-call-a-shell-command-in-my-perl-script {{tag>perl}} tech/perl_exec.txt 上一次變更: 2021/01/03 23:16由 jonathan