grep 後傳變數無效

2021-09-29 18:28:21 字數 828 閱讀 6708

ps -ef|grep gitbook|grep 24002|grep 4002
執行結果

root       1960   1948  7 14:25 ?        00:00:02 node /usr/local/bin/gitbook serve --lrport 24002 --port 4002
可以查到相應的程序

lrport=24002

port=4002

ps -ef|grep gitbook|grep $lrport|grep $port

用cat -a和bash -x命令檢視test2.s**件

cat -a test2.sh

lrport=24002^m$

port=4002^m$

ps -ef|grep gitbook|grep $lrport|grep $portr

bash -x test2.sh

+ lrport=$'24002\r'

+ port=$'4002\r'

+ grep $'4002\r'

+ grep $'24002\r'

+ grep gitbook

+ ps -ef

發現變數後都有換行符\r,而原始檔中除去最後一行,每行後面都有'^m$』,網上查了一下最後發現了導致問題的最終原因:

test2.sh是在windows上編寫然後拷貝到linux上的,可能因為兩者的編碼方式不一樣。

在linux上用vi重新編寫乙份一摸一樣的檔案,能夠正常查詢到結果。

有符號變數與無符號變數的值的轉換

include char getchar int x,int y int main void 這段程式的輸出結果為 c1 1 c2 2 c3 1 c4 2 首先說明getchar 函式的作用 將引數x的值轉換為無符號整形後再與y相加。其結果與101進行比較,如果大於10則函式返回1,否則返回2。注意...

有符號變數與無符號變數的值的轉換

最近了解了一下有符號變數與無符號變數的區別和聯絡,看下面 include char getchar intx,inty intmain void 程式輸出結果為 c1 1 c2 2 c3 1 c4 2 首先說明getchar 函式的作用 將引數x的值轉換為無符號整形後再與y相加。其結果與101進行比...

有符號變數與無符號變數的值的轉換

知識點 原碼和補碼,在計算機系統中,數值一律用補碼來表示和儲存 正數的補碼 與原碼相同 負數的補碼 符號位為1,其餘位為該數絕對值的原碼按位取反,然後加1 例如,乙個char型別的 7的補碼 因為是負數,則符號位為 1 整個為10000111 其餘7位為 7的絕對值 7的原碼 0000111按位取反...