shell命令輸出到變數

2021-06-18 19:40:29 字數 698 閱讀 6558

今天用指令碼來獲取程序id,並給相應程序傳送乙個訊號,

shell命令獲得程序id的方法有三種:

1.ps -a |grep "cmdname"| awk ''

2.pidof "cmdname"

3.pgrep "cmdname"

注意,這裡cmdname的雙引號不要。

這三種在bash和busybox ash裡面的執行結果稍有不同,

第一種完全相同,但是因為呼叫命令次數較多,效能上是不行的。

第二種: pidof 只能獲取程式的檔名匹配到的程序號,在ash中 比如 pidof "usr/bin/telnetd" 和 pidof "telnetd"中結果不一樣, 前一種結果為空,但是在bash中執行兩者一樣。

第三種: pgrep跟1的效果相同,因為是單一命令,比第一種效能要好得多。

在shell檔案中編寫時,一般是

#! /bin/bash

process_id=`grep "cmdname"`

kill -sigusr1 process_id

注意,在shell中,命令的執行是"`",這個符號在和~在同一按鍵上,而不是單引號,否則給變數的值是命令字串,而不是命令執行的結果。

這個簡單的shell指令碼用來向cmdname這個程序傳送乙個使用者自定義的訊號

在cmdname程序中只要 sigaction()函式,指定相應的訊號處理函式即可

nohup 命令輸出到指定檔案

在linux中執行命令行時,會輸出一些日誌資訊,特別典型的是啟用weblogic命令時,輸出一些資訊,當啟用demon模式執行時,又想收集這些資訊咋辦?解決的辦法就是使用輸出重定向,如下面的命令 nohup run log 2 1 其中log是儲存輸出的檔名稱 2 1 表示不僅命令列正常的輸出儲存到...

頁面輸出到EXCEL

其實,利用asp.net輸出指定內容的word excel txt htm等型別的文件很容易的。主要分為三步來完成。一 定義文件型別 字元編碼 response.clear response.buffer true response.charset utf 8 filename fileflow.x...

c 除錯輸出到輸出視窗

首先新增預處理定義 crt secure no warnings 例子 除錯輸出 d和 d n 123,500 void 除錯輸出 const char stroutputstring,va list vlargs va start vlargs,stroutputstring vsnprintf ...