C語言呼叫SHELL指令碼

2021-06-07 06:58:02 字數 1487 閱讀 2383

在linux 環境下shell指令碼具有非常強大的功能!使用shell可以很方便的使用和管理linux系統,最近學習了一點shell知識,所以一直在

想要是可以在c/c++中呼叫shell指令碼那該有多好啊! 因為使用c/c++要幾百行**才能搞定的!使用shell只要短短十幾行就可以輕鬆搞定!

#include

#include

int main(void)

return 0; }

想到其就是清除掉了已輸出的內容!這個就是在終端中使用clear 命令啊! 所以想到可以使用system("clear");   檢視了一下system函式的手

冊頁! 發現這個system函式就是我所要找的可以實現在c/c++中呼叫shell指令碼的工具!

#include

int system(const char *command);

description

system() executes a command specified in command by calling /bin/sh -c command, and returns after the command has been completed.  during execution of the command, sigchld will be blocked, and sigint and sigquit will be ignored.

因為system()執行的命令為/bin/sh -c command , 也就是說在終端中可以執行的shell 命令都可以呼叫執行!所以

#include

#include

int main(void)

return 0; }

雖然這個程式勉強可以滿足要求!但是還是不夠盡人意!所以有想了想!既然可以用一般命令!那應該也可以執行乙個自己寫的指令碼! 於是

便動手寫了個指令碼 shell.sh

#!/bin/bash

#filename: shell.sh

echo -n completed:

tput sc

count=0;

while true; do

    if [ $count -lt 101 ];  then

            let count++;

            tput rc;

            tput ed;

            echo -n $count%

            sleep 1;

    else echo ; exit 0;

    fi

done

然後就是chmod u+x shell.sh 將shell.sh設為可執行,然後在同目錄下建立fun.c

#include

int main(void)

這樣直接呼叫自己編寫的shell指令碼同樣達到了目的!!!(第一次寫部落格!!!自己喜乙個!!)

C語言中system呼叫shell指令碼的問題

在c語言中使用system 語句呼叫shell指令碼時,c語言程式並不會等待system 語句執行完畢尤其在shell指令碼有呼叫bash下命令時並向檔案輸出時,又無法用重新整理標準輸出流緩衝區的方式來解決亂序輸出的問題.例如 c中部分 for int i 0 i 5 i system test.s...

C語言呼叫shell命令

在linux程式開發中經常需要呼叫一些現有的shell介面,比如ifconfig ping等。通過以下程式就可以直接呼叫,雖然和 實現相比效率較低,但是 編寫較為簡單。c 函式功能 popen 會呼叫fork 產生子程序,然後從子程序中呼叫 bin sh c來執行引數command的指令。引數typ...

Python 呼叫shell指令碼

python呼叫shell指令碼,有兩種方法 os.system cmd 或os.popen cmd 前者返回值是指令碼的退出狀態碼,後者的返回值是指令碼執行過程中的輸出內容。實際使用時視需求情況而選擇。現假定有乙個shell指令碼test.sh bin bash 1.echo hello worl...