1. 程式人生 > >Linux-shell-curl-put命令變數及換行問題總結

Linux-shell-curl-put命令變數及換行問題總結

1. 最近在使用shell curl自動處理ETL時,需要定時觸發一API,使用方式為PUT,但是多次觸發均失敗,命令如下:

curl -g -i -H "Content-type: application/json" \
-X PUT "http://101.201.81.101:8080/preaggregate" \

-d

'{"taskId":"base_analyses","aggId":"5bebf84c339e8b79dc018d","WindowId":"662401807f9198d7d5","force":true,"type":"range","dayRanges":[${startdate},${enddate}]}'

請求結果報錯

原因:

1.自動換行多了一個  "\n",原因是json太長,unix會自動換行,換行傳送json後,會在json內自動加上該換行符,api解析json會出錯,解決該問題的辦法就是先定義變數值;

put_pre='{"taskId":"base_analyses","aggId":"5bebf84c339e8b79dc018d","WindowId":"662401807f9198d7d5","force":true,'

2.變數使用方式不正確,json內不應該出現${startdate},${enddate}這樣的變數,應該改為'xxx'${startdate}'xxx'。

整理後的正確請求方式為:

curl -g -i -H "Content-type: application/json" \
-X PUT "http://101.201.81.101:8080/preaggregate" \

-d

${put_pre}'"type":"range","dayRanges":['${startdate}','${enddate}']}'

大家在使用過程中可能也會遇到以上問題,使用這種方式處理即可。


相關推薦

Linux-shell-curl-put命令變數問題總結

1. 最近在使用shell curl自動處理ETL時,需要定時觸發一API,使用方式為PUT,但是多次觸發均失敗,命令如下:curl -g -i -H "Content-type: application/json" \-X PUT "http://101.201.81.10

linux shell 用sed命令在文字的尾或首新增字元

昨天寫一個指令碼花了一天的2/3的時間,而且大部分時間都耗在了sed命令上,今天不總結一下都對不起昨天流逝的時間啊~~~ 用sed命令在行首或行尾新增字元的命令有以下幾種: 假設處理的文字為test.file 在每行的頭新增字元,比如"HEAD",命令如下: sed 's

linux shell curl get 請求頭 和多引數問題解決

1、請求頭Authorization 在curl 中新增請求頭資訊,需要用-H ,並且用“請求頭屬性:屬性值”的格式,如 curl -H "Authorization:Basic MTIzNA=="  http://www.aaaa.com 2、curl的get方式,請求

Linux Shell基礎 read命令

read命令 read 命令用於接收標準輸入(鍵盤)的輸入,或者其他檔案描述符的輸入。得到輸入後,read 命令將資料放入一個標準變數中,read 命令格式如下: [[email protected] ~]# read [選項] [變數名] 選項: -p "提

Linux Shell程式設計 awk命令

概述 awk是一種程式語言,用於在linux/unix下對文字和資料進行處理。資料可以來自標準輸入(stdin)、一個或多個檔案,或其它命令的輸出。它支援使用者自定義函式和動態正則表示式等先進功能,是linux/unix下的一個強大程式設計工具。它在命令列中使用,但更多是作為指令碼來使用。awk有很多內建的

Linux Shell程式設計 sed命令

概述 sed命令用來選取、替換、刪除、新増資料 sed 是一種幾乎可以應用在所有 UNIX 平臺(包括 Linux)上的輕量級流編輯器。sed 有許多很好的特性。首先,它相當小巧,通常要比你所喜愛的指令碼語言小多倍。其次,因為 sed 是一種流編輯器,所以,它可以對從如管道這樣的標準輸入中接收的

Linux Shell程式設計 test命令

概述 test 命令是Shell 指令碼中用來進行條件判斷的。 test命令示例 按照檔案型別進行判斷 測試選項 作 用 -b 檔案 判斷該檔案是否存在,並且是否為塊裝置檔案(是塊裝置檔案為真) -c 檔案 判斷

Linux Shell之declare命令

1、變數宣告為數值型 declare -i num=12 也可以檢視變數型別 declare -p num 得到的結果如下 declare -i num="12" 2、宣告陣列變數 (1)定義陣列 (2)檢視陣列 echo ${a

Linux Shell 內建命令 : builtin 命令詳解

builtin命令用於執行指定的shell內部命令,並返回內部命令的返回值。builtin命令在使用時,將不能夠再使用Linux中的外部命令。當系統中定義了與shell內部命令相同的函式時,使用builtin顯式地執行shell內部命令,從而忽略定義的shell函式。 語法

Linux shell 指令碼新增環境變數,監控web 服務是否正常

例項1:寫shell指令碼定義函式設定環境變數路徑 prepend() { [ -d “$2” ] && eval $1="$2${$1:+’:’$$1}" && export $1 } 執行 prepend PATH /opt/myapp/bin 說明:

0083-【Linux-Shell】-date命令格式

獲得當天的日期 date +%Y-%m-%d 輸出: 2011-07-28 date1=$(date --date='1 days ago +%Y%m%d') #前一天的日期 date1=$(date --date='2 days ago +%Y%m%d')

Linux系統入門之命令學習解析(二)

Linux常用目錄 以下是系統的一級目錄,這些目錄在Linux系統中都有著不同的用處。 /  Linux系統根目錄(重要,常用) /home  包含使用者的檔案:引數設定、個性檔案、文件、資料、EMAIL、快取資料等,每增加一個使用者,系統就會在home目錄下

Linux, shell 一些常用命令

經常會忘記命令細節,特地的記錄常用命令。 1 檢視當前資料夾當前目錄下所有一級子目錄資料夾大小,儲存使用情況,並排序: du -h --max-depth=1 | sort 2 檢視當前檔案系統使

[Linux]shell基礎教程4-變數詳細講解

原創文章,歡迎轉載。轉載請註明:轉載自 祥的部落格 原文連結:https://blog.csdn.net/humanking7/article/details/84641588 文章目錄 @[toc] 環境

[Linux]shell基礎教程1-變數、字串、陣列、註釋

原創文章,歡迎轉載。轉載請註明:轉載自 祥的部落格 原文連結:https://blog.csdn.net/humanking7/article/details/84504500 文章目錄 @[toc] 環境

linux環境中ab命令簡介結果分析

ab(apache bench)是apache下的一個工具,主要用於對web站點做壓力測試,基礎用法:其中-c選項為一次傳送的請求數量,及併發量。-n選項為請求次數。實驗測試: [[email protected] ~]$ ab -c 20 -n 50000 ht

linux shell通過i2cget命令獲取I2C器件暫存器的值

以下內容為原創,歡迎轉載,轉載請說明來源:http://blog.csdn.net/masterbee/article/details/78676040 最近在寫一段linux shell指令碼,通過I2C控制一顆IC,獲取它暫存器的值,它暫存器的值即表示想要獲取的電壓。 先解釋一下:

linux shell 多個命令一起執行的幾種方法

在命令列可以一次執行多個命令,有以下幾種: 1.每個命令之間用;隔開 說明:各命令的執行結果,不會影響其它命令的執行。換句話說,各個命令都會執行, 但不保證每個命令都執行成功。 cd /home/PyTest/src; python suning.py

linux命令列無故的惱人問題

      在敲linux命令時, 明明本行遠遠沒有滿, 就自動換行了, 而且還覆蓋, 頗為惱人。 在網上找了很多地方, 也沒有比較好的解決方法, 勉強忍受了一段時間。      最近, 偶然看到一同事也遇到了這個問題, 操作是在SecureCrt介面那裡先縮小介面, 然後放

Linux Shell遠端執行命令命令列與指令碼方式)

shell遠端執行:  經常需要遠端到其他節點上執行一些shell命令,如果分別ssh到每臺主機上再去執行很麻煩,因此能有個集中管理的方式就好了。一下介紹兩種shell命令遠端執行的方法。 前提條件:   配置ssh免密碼登陸 對於簡單的命令:   如果是簡單執行幾個命令,則: ssh [em