php下運用system命令時,重定向問題

2021-06-28 12:12:06 字數 469 閱讀 5530

今天用到php下運用system函式來執行linux命令,發現在命令後重定向(>>)到乙個檔案中不成功.

開始檢測時,沒有注意到重定向也是bash命令,一時想不起來檔案不存在是要新建檔案。php執行使用者不root,

所以許可權不夠,導致命令不成功。

後來查資料得知,「因為重定向符號 ">" 和 ">>" 也是 bash 的命令。我們使用 sudo 只是讓 前面命令具有了 root 許可權,但是沒有讓 「>」 和 ">>" 命令也具有 root 許可權,所以 bash 會認為這兩個命令都沒有向 檔案寫入資訊的許可權」 

解決方法 ,利用管道和 tee 命令,該命令可以從標準輸入中讀入資訊並將其寫入標準輸出或檔案中,具體用法如下:

$ echo "aa" | sudo tee -a test.txt

發現,curl 有乙個選項 -o file 可以轉儲到臨時檔案中,

eg. /usr/bin/curl -o test.txt 

呼叫System命令時隱藏控制台視窗

第一種 shellexecute函式原型及引數含義如下 shellexecute hwnd hwnd,父視窗控制代碼 lpcstr lpoperation,操作型別 lpcstr lpfile,要進行操作的檔案或路徑 lpcstr lpparameters,當lpoperation為 explore...

PHP 執行命令時sudo許可權的配置

1 先寫乙個php檔案 system whoami 先看自己的apache2的使用者是誰,下面是筆者的截圖,筆者使用apche2的使用者是www data 2 配置超級使用者 sudo visudo自己網路上搜尋大部分答案,只有上半句,無下半句,切記要加上去,參考 讓php以root許可權執行exe...

Linux下執行命令時CTRL Z的作用

命令執行時使用ctrl z,強制當前程序轉為後台,並使之停止.1.使程序恢復執行 後台 1 使用命令bg example zuii zuii desktop unp tcpcliserv tcpserv01 這裡使用ctrl z,此時serv01是停止狀態 1 stopped tcpserv01 z...