中文字幕人妻中文_99精品欧美一区二区三区综合在线_精品久久久久一区二区_色月丁香_免费福利在线视频_欧美大片免费观看网址_国产伦精品一区二区三区在线播放_污污污污污污www网站免费_久久月本道色综合久久_色69激情爱久久_尹人香蕉久久99天天拍_国产美女www_亚洲国产精品无码7777一线_五月婷婷六月激情_看免费一级片_精品久久久久久成人av_在线色亚洲_女人另类性混交zo_国产精品青青在线观看爽香蕉_人人澡人人添人人爽一区二区

主頁(yè) > 知識(shí)庫(kù) > 一篇教會(huì)你寫(xiě)90%的shell腳本(入門(mén)小結(jié))

一篇教會(huì)你寫(xiě)90%的shell腳本(入門(mén)小結(jié))

熱門(mén)標(biāo)簽:地圖標(biāo)注審核周期 沈陽(yáng)ai電銷(xiāo)智能機(jī)器人 如何申請(qǐng)400的電話呀 合肥電銷(xiāo)外呼系統(tǒng)供應(yīng)商 AI智能電銷(xiāo)機(jī)器人壞處 電話機(jī)器人對(duì)家居行業(yè)幫助大嗎 電商外呼系統(tǒng)排名 蘭州電銷(xiāo)機(jī)器人加盟 黑暗之魂3地圖標(biāo)注

shell腳本?

在說(shuō)什么是shell腳本之前,先說(shuō)說(shuō)什么是shell。

shell是外殼的意思,就是操作系統(tǒng)的外殼。我們可以通過(guò)shell命令來(lái)操作和控制操作系統(tǒng),比如Linux中的Shell命令就包括ls、cd、pwd等等??偨Y(jié)來(lái)說(shuō),Shell是一個(gè)命令解釋器,它通過(guò)接受用戶(hù)輸入的Shell命令來(lái)啟動(dòng)、暫停、停止程序的運(yùn)行或?qū)τ?jì)算機(jī)進(jìn)行控制。

shell 是一個(gè)應(yīng)用程序,它連接了用戶(hù)和 Linux 內(nèi)核,讓用戶(hù)能夠更加高效、安全、低成本地使用 Linux 內(nèi)核,這就是 Shell 的本質(zhì)。

shell 本身并不是內(nèi)核的一部分,它只是站在內(nèi)核的基礎(chǔ)上編寫(xiě)的一個(gè)應(yīng)用程序。

那么什么是shell腳本呢?

shell腳本就是由Shell命令組成的執(zhí)行文件,將一些命令整合到一個(gè)文件中,進(jìn)行處理業(yè)務(wù)邏輯,腳本不用編譯即可運(yùn)行。它通過(guò)解釋器解釋運(yùn)行,所以速度相對(duì)來(lái)說(shuō)比較慢。

shell腳本中最重要的就是對(duì)shell命令的使用與組合,再使用shell腳本支持的一些語(yǔ)言特性,完成想要的功能。

 注釋

“# ”開(kāi)頭的就是注釋?zhuān)痪幾g器忽略

  • 單行注釋?zhuān)?#
  • 多行注釋?zhuān)?:EOF … EOF 或者 :! … ! (: 標(biāo)識(shí)多行注釋開(kāi)始,并指定一個(gè)標(biāo)識(shí)符作為開(kāi)始結(jié)束的標(biāo)志)

變量

變量類(lèi)型

運(yùn)行shell時(shí),會(huì)同時(shí)存在三種變量:

  • 局部變量:局部變量在腳本或命令中定義,僅在當(dāng)前shell實(shí)例中有效,其他shell啟動(dòng)的程序不能訪問(wèn)局部變量。
  • 環(huán)境變量:所有的程序,包括shell啟動(dòng)的程序,都能訪問(wèn)環(huán)境變量,有些程序需要環(huán)境變量來(lái)保證其正常運(yùn)行。必要的時(shí)候shell腳本也可以定義環(huán)境變量。
  • shell變量:shell變量是由shell程序設(shè)置的特殊變量。shell變量中有一部分是環(huán)境變量,有一部分是局部變量,這些變量保證了shell的正常運(yùn)行

變量操作

  • 創(chuàng)建普通變量: name=“test” (=兩邊不可有空格)
  • 創(chuàng)建只可函數(shù)體中使用的局部變量: local name=“test” (使用local修飾的變量在函數(shù)體外無(wú)法訪問(wèn),并且local只能在函數(shù)體內(nèi)使用)
  • 使用變量: echo $name 或者 echo ${name} (推薦使用大括號(hào)版)
  • 變量重新賦值: name=“new_test” (將原值覆蓋)
  • 只讀變量: name=“only_read” -> readonly name (使用readonly標(biāo)識(shí)后的變量,不可被修改)
  • 刪除變量: unset name; (刪除之后不可訪問(wèn),刪除不掉只讀變量)

字符串變量

1)單引號(hào)

  • 單引號(hào)變量var='test' ,只能原樣輸出,變量無(wú)效
  • 單引號(hào)中不能出現(xiàn)一個(gè)單獨(dú)的單引號(hào),轉(zhuǎn)義也不可以

2)雙引號(hào)

  • 雙引號(hào)變量var="my name is ${name}",變量有效
  • 可出現(xiàn)轉(zhuǎn)義符

3)拼接字符串

  • 中間無(wú)任何+,之類(lèi)的字符
  • name=“this is”" my name"; name=“this is my name”; name=“this” is “my name” 等效
  • name=‘this is'' my nam'; name=‘this is my name'; name=‘this' is ‘my name' 等效

4)獲取字符串長(zhǎng)度

  • 在${}中使用“#”獲取長(zhǎng)度
  • name=“test”;
  • echo ${#name}; # 輸出為4

5)提取子字符串

  • 1:4 從第2個(gè)開(kāi)始 往后截取4個(gè)字符
  • ::4 從第一個(gè)字符開(kāi)始 往后截取4個(gè)字符
  • name=“this is my name”;
  • echo ${name:1:4} #輸出 is i
  • echo ${name::4} #輸出 this

數(shù)組

bash只支持一維數(shù)組,不支持多維數(shù)組

  • 定義數(shù)組:array_name=(li wang xiang zhang) (小括號(hào)做邊界、使用空格分離)
  • 單獨(dú)定義數(shù)組的元素: array_para[0]=“w”; array_para[3]=“s” (定義時(shí)下標(biāo)不連續(xù)也可以)
  • 賦值數(shù)組元素:array_name[0]=“zhao”;
  • 獲取數(shù)組元素:
    • array_name[0]=“l(fā)i”
    • array_name[3]=“zhang”
    • echo ${array_name[0]} # 輸出"li"
    • echo ${array_name[1]} # 輸出" "
    • echo ${array_name[3]} # 輸出"zhang"
    • echo ${array_name[@]} # 輸出"li zhang" 輸出數(shù)組所有元素,沒(méi)有元素的下標(biāo)省略
  • 取得元素個(gè)數(shù):${#array_name[@]} 或者 ${#array_name[*]}
  • 取得單個(gè)元素長(zhǎng)度:${#array_name[1]}

參數(shù)傳遞

  • 獲取參數(shù)值:
    • $0 : 固定,代表執(zhí)行的文件名
    • $1 : 代表傳入的第1個(gè)參數(shù)
    • $n : 代表傳入的第n個(gè)參數(shù)
  • $#:參數(shù)個(gè)數(shù)
  • $*: 以一個(gè)單字符串顯示所有向腳本傳遞的參數(shù)。如"$*“用「”」括起來(lái)的情況、以"$1 $2 … $n"的形式輸出所有參數(shù)
  • $@:與$*相同,但是使用時(shí)加引號(hào),并在引號(hào)中返回每個(gè)參數(shù)。
  • $$:腳本運(yùn)行的當(dāng)前進(jìn)程號(hào)
  • $!:后臺(tái)運(yùn)行的最后一個(gè)進(jìn)程的ID
  • $?: 顯示最后命令的退出狀態(tài)。0表示沒(méi)有錯(cuò)誤,其他任何值表明有錯(cuò)誤。
  • $* 與 $@ 區(qū)別
    • 相同點(diǎn):都是引用所有參數(shù)。
    • 不同點(diǎn):只有在雙引號(hào)中體現(xiàn)出來(lái)。假設(shè)在腳本運(yùn)行時(shí)寫(xiě)了三個(gè)參數(shù) 1、2、3,,則 " * " 等價(jià)于 “1 2 3”(傳遞了一個(gè)參數(shù)),而 “@” 等價(jià)于 “1” “2” “3”(傳遞了三個(gè)參數(shù))。

運(yùn)算符

算數(shù)運(yùn)算

  • + 、-、*、\ : 乘號(hào)前必須加\進(jìn)行轉(zhuǎn)義才可以進(jìn)行乘法運(yùn)算
  • 加法運(yùn)算
    • val=`expr 2 + 2` (使用linux命令expr進(jìn)行輔助運(yùn)算)
    • val=$[2+2] (4個(gè)空格不是必要的,不同于條件判斷)
    • val=$((2+2))

數(shù)字關(guān)系運(yùn)算符

關(guān)系運(yùn)算符只支持?jǐn)?shù)字,不支持字符串,除非字符串的值是數(shù)字。

下面假定變量 a 為 10,變量 b 為 20

  • -eq :檢測(cè)兩個(gè)數(shù)是否相等,相等返回 true。 [ $a -eq $b ] 返回 false。
  • -ne: 檢測(cè)兩個(gè)數(shù)是否不相等,不相等返回 true。 [ $a -ne $b ] 返回 true。
  • -gt: 檢測(cè)左邊的數(shù)是否大于右邊的,如果是,則返回 true。 [ $a -gt $b ] 返回 false。
  • -lt : 檢測(cè)左邊的數(shù)是否小于右邊的,如果是,則返回 true。 [ $a -lt $b ] 返回 true。
  • -ge: 檢測(cè)左邊的數(shù)是否大于等于右邊的,如果是,則返回 true。 [ $a -ge $b ] 返回 false。
  • -le : 檢測(cè)左邊的數(shù)是否小于等于右邊的,如果是,則返回 true。 [ $a -le $b ] 返回 true。

字符串運(yùn)算符

下表列出了常用的字符串運(yùn)算符,假定變量 a 為 “abc”,變量 b 為 “efg”:

  • = :檢測(cè)兩個(gè)字符串是否相等,相等返回 true。 [ $a = $b ] 返回 false。
  • != :檢測(cè)兩個(gè)字符串是否相等,不相等返回 true。 [ $a != $b ] 返回 true。
  • -z :檢測(cè)字符串長(zhǎng)度是否為0,為0返回 true。 [ -z $a ] 返回 false。
  • -n :檢測(cè)字符串長(zhǎng)度是否為0,不為0返回 true。 [ -n “$a” ] 返回 true。
  • $ :檢測(cè)字符串是否為空,不為空返回 true。 [ $a ] 返回 true。

布爾運(yùn)算符

下表列出了常用的布爾運(yùn)算符,假定變量 a 為 10,變量 b 為 20:

  • ! :非運(yùn)算,表達(dá)式為 true 則返回 false,否則返回 true。 [ ! false ] 返回 true。
  • -o :或運(yùn)算,有一個(gè)表達(dá)式為 true 則返回 true。 [ $a -lt 20 -o $b -gt 100 ] 返回 true。
  • -a :與運(yùn)算,兩個(gè)表達(dá)式都為 true 才返回 true。 [ $a -lt 20 -a $b -gt 100 ] 返回 false。

邏輯運(yùn)算符

以下介紹 Shell 的邏輯運(yùn)算符,假定變量 a 為 10,變量 b 為 20:

  • :邏輯的 AND [[ $a -lt 100 $b -gt 100 ]] 返回 false
  • || :邏輯的 OR [[ $a -lt 100 || $b -gt 100 ]] 返回 true

文件運(yùn)算符

  • -b file :檢測(cè)文件是否是塊設(shè)備文件,如果是,則返回 true。 [ -b $file ] 返回 false。
  • -c file :檢測(cè)文件是否是字符設(shè)備文件,如果是,則返回 true。 [ -c $file ] 返回 false。
  • -d file :檢測(cè)文件是否是目錄,如果是,則返回 true。 [ -d $file ] 返回 false。
  • -f file :檢測(cè)文件是否是普通文件(既不是目錄,也不是設(shè)備文件),如果是,則返回 true。 [ -f $file ] 返回 true。
  • -g file :檢測(cè)文件是否設(shè)置了 SGID 位,如果是,則返回 true。 [ -g $file ] 返回 false。
  • -k file :檢測(cè)文件是否設(shè)置了粘著位(Sticky Bit),如果是,則返回 true。 [ -k $file ] 返回 false。
  • -p file :檢測(cè)文件是否是有名管道,如果是,則返回 true。 [ -p $file ] 返回 false。
  • -u file :檢測(cè)文件是否設(shè)置了 SUID 位,如果是,則返回 true。 [ -u $file ] 返回 false。
  • -r file :檢測(cè)文件是否可讀,如果是,則返回 true。 [ -r $file ] 返回 true。
  • -w file :檢測(cè)文件是否可寫(xiě),如果是,則返回 true。 [ -w $file ] 返回 true。
  • -x file :檢測(cè)文件是否可執(zhí)行,如果是,則返回 true。 [ -x $file ] 返回 true。
  • -s file :檢測(cè)文件是否為空(文件大小是否大于0),不為空返回 true。 [ -s $file ] 返回 true。
  • -e file :檢測(cè)文件(包括目錄)是否存在,如果是,則返回 true。 [ -e $file ] 返回 true。

執(zhí)行相關(guān)

命令替換

命令替換與變量替換差不多,都是用來(lái)重組命令行的,先完成引號(hào)里的命令行,然后將其結(jié)果替換出來(lái),再重組成新的命令行。
執(zhí)行命令:

  • `ls /etc` : 反引號(hào) (所有的unix系統(tǒng)都支持)
  • $(ls /etc) : $+() (部分unix系統(tǒng)不支持)

多個(gè)嵌套使用時(shí),從內(nèi)向外執(zhí)行

for file in \s /etc\ 或 for file in $(ls /etc) 循環(huán)中使用
`dirname $0` 獲取腳本文件所在的目錄
path=$(cd `dirname $0`;pwd) : 獲取腳本當(dāng)前所在目錄,并且執(zhí)行cd命令到達(dá)該目錄,使用pwd獲取路徑并賦值到path變量

算術(shù)運(yùn)算

  • $[ ] : 加減乘除,不必添加空格
  • $(( )) :加減乘除等,不必添加空格

邏輯判斷

  • [ ] : 中括號(hào)旁邊和運(yùn)算符兩邊必須添加空格 (可以使用,不推薦)
  • [[ ]]:中括號(hào)旁邊和運(yùn)算符兩邊必須添加空格 (字符串驗(yàn)證時(shí),推薦使用)
  • (()) : 中括號(hào)旁邊和運(yùn)算符兩邊必須添加空格 (數(shù)字驗(yàn)證時(shí),推薦使用)
  • [[]] 和 (()) 分別是[ ]的針對(duì)數(shù)學(xué)比較表達(dá)式和字符串表達(dá)式的加強(qiáng)版。
  • 使用[[ … ]]條件判斷結(jié)構(gòu),而不是[ … ],能夠防止腳本中的許多邏輯錯(cuò)誤。比如,、||、和> 操作符能夠正常存在于[[ ]]條件判斷結(jié)構(gòu)中,但是如果出現(xiàn)在[ ]結(jié)構(gòu)中的話,會(huì)報(bào)錯(cuò)。比如可以直接使用if [[ $a != 1 $a != 2 ]], 如果不適用雙括號(hào), 則為if [ $a -ne 1] [ $a != 2 ]或者if [ $a -ne 1 -a $a != 2 ]。

[[ ]]中增加模式匹配特效;
(( ))不需要再將表達(dá)式里面的大小于符號(hào)轉(zhuǎn)義,除了可以使用標(biāo)準(zhǔn)的數(shù)學(xué)運(yùn)算符外,還增加了以下符號(hào)

輸出

echo

僅用于字符串的輸出,沒(méi)有使用printf作為輸出的移植性好,建議使用printf

printf

printf 不會(huì)像 echo 自動(dòng)添加換行符,我們可以手動(dòng)添加 \n
無(wú)大括號(hào),直接以空格分隔

格式:printf format-string [arguments...] 其中(format-string: 格式控制字符串、arguments: 參數(shù)列表)

案例:printf "%-10s %-8s %-4.2f\n" 郭靖 男 66.1234

%s %c %d %f 都是格式替代符

  • d:Decimal 十進(jìn)制整數(shù) 對(duì)應(yīng)位置參數(shù)必須是十進(jìn)制整數(shù),否則報(bào)錯(cuò)!
  • s:String 字符串 對(duì)應(yīng)位置參數(shù)必須是字符串或者字符型 否則報(bào)錯(cuò)
  • c:Char 字符 對(duì)應(yīng)位置參數(shù)必須是字符串或者字符型 否則報(bào)錯(cuò)
  • f:Float 浮點(diǎn) 對(duì)應(yīng)位置參數(shù)必須是數(shù)字型 否則報(bào)錯(cuò)

%-10s : 指一個(gè)寬度為10個(gè)字符(-表示左對(duì)齊,沒(méi)有則表示右對(duì)齊),任何字符都會(huì)被顯示在10個(gè)字符寬的字符內(nèi),如果不足則自動(dòng)以空格填充,超過(guò)也會(huì)將內(nèi)容全部顯示出來(lái)。

%-4.2f :指格式化為小數(shù),寬度為4個(gè)字符,其中.2指保留2位小數(shù)。

轉(zhuǎn)義符:

  • \a :警告字符,通常為ASCII的BEL字符
  • \b :后退
  • \c :抑制(不顯示)輸出結(jié)果中任何結(jié)尾的換行字符(只在%b格式指示符控制下的參數(shù)字符串中有效),而且,任何留在參數(shù)里的字符、任何接下來(lái)的參數(shù)以及任何留在格式字符串中的字符,都被忽略
  • \f :換頁(yè)(formfeed)
  • \n :換行
  • \r :回車(chē)(Carriage return)
  • \t :水平制表符
  • \v :垂直制表符
  • \ :一個(gè)字面上的反斜杠字符
  • \ddd :表示1到3位數(shù)八進(jìn)制值的字符。僅在格式字符串中有效
  • \0ddd :表示1到3位的八進(jìn)制值字符

流程控制

和Java、PHP等語(yǔ)言不一樣,sh的流程控制不可為空,即if或者else的大括號(hào)中無(wú)任何語(yǔ)句

if else

if
if condition
then
 command1 
 command2
 ...
 commandN 
fi

if else

if condition
then
 command1 
 command2
 ...
 commandN
else
 command
fi

if else-if else

if condition1
then
 command1
elif condition2 
then 
 command2
else
 commandN
fi

for

for var in item1 item2 ... itemN
do
 command1
 command2
 ...
 commandN
done

while

while condition

while condition
do
 command
done

while 無(wú)限循環(huán)

while :
do
 command
done

until

until 循環(huán)執(zhí)行一系列命令直至條件為 true 時(shí)停止。
until 循環(huán)與 while 循環(huán)在處理方式上剛好相反。

until condition
do
 command
done

case

Shell case語(yǔ)句為多選擇語(yǔ)句??梢杂胏ase語(yǔ)句匹配一個(gè)值與一個(gè)模式,如果匹配成功,執(zhí)行相匹配的命令。
case需要一個(gè)esac(就是case反過(guò)來(lái))作為結(jié)束標(biāo)記,每個(gè)case分支用右圓括號(hào),用兩個(gè)分號(hào)表示break,其中“;;”不是跳出循環(huán),是不在去匹配下面的模式
case語(yǔ)句格式如下:

case 值 in
 模式1)
 command1
 command2
 ...
 commandN
 ;;
 模式2)
 command1
 command2
 ...
 commandN
 ;;
esac

跳出循環(huán)

  • break :跳出總循環(huán)
  • continue:跳出當(dāng)前循環(huán),繼續(xù)下一次循環(huán)

定義函數(shù)

可以帶function fun() 定義,也可以直接fun() 定義,不帶任何參數(shù)。

函數(shù)定義

[ function ] funname()
{
 action;
 [return int;]
}

參數(shù)傳遞

  • 調(diào)用函數(shù): fun_name 2 3 4
  • 函數(shù)中使用:和shell取用函數(shù)相同 $n $# $* $? 或者加上{}
funWithParam(){
 echo "第一個(gè)參數(shù)為 $1 !"
 echo "第二個(gè)參數(shù)為 $2 !"
 echo "第十個(gè)參數(shù)為 $10 !"
 echo "第十個(gè)參數(shù)為 ${10} !"
 echo "第十一個(gè)參數(shù)為 ${11} !"
 echo "參數(shù)總數(shù)有 $# 個(gè)!"
 echo "作為一個(gè)字符串輸出所有參數(shù) $* !"}
funWithParam 1 2 3 4 5 6 7 8 9 34 73
echo $? \# 判斷執(zhí)行是否成功

函數(shù)返回值

  • return字樣可存在也可不存在
  • return 只能為 return [0-255],此處的返回可作為函數(shù)執(zhí)行的狀態(tài),通過(guò)$?獲取的便是這個(gè)返回值
  • 如果不加return , 則默認(rèn)最后一條語(yǔ)句的執(zhí)行狀態(tài)所為函數(shù)執(zhí)行狀態(tài)的返回值,如果最后一條語(yǔ)句執(zhí)行成功,則$?為0,否則不為0

使用函數(shù)返回值(Janusgraph圖數(shù)據(jù)庫(kù)官方啟動(dòng)服務(wù)腳本片段)

  • return返回的數(shù)字,只是作為函數(shù)執(zhí)行狀態(tài)的返回值,也就是接下來(lái)$?獲取的值
  • 對(duì)于類(lèi)似于下面的BIN=\abs_path``語(yǔ)句,獲取的是函數(shù)體內(nèi)所有的echo、printf輸出組合成的一個(gè)字符串
abs_path() {
 SOURCE="${BASH_SOURCE[0]}"
 while [ -h "$SOURCE" ]; do
  DIR="$( cd -P "$( dirname "$SOURCE" )"  pwd )"
  SOURCE="$(readlink "$SOURCE")"
  [[ $SOURCE != /* ]]  SOURCE="$DIR/$SOURCE"
 done
 echo "test" 
 echo "$( cd -P "$( dirname "$SOURCE" )"  pwd )" 
 # 此函數(shù)的兩個(gè)echo輸出會(huì)組合成一個(gè)字符串作為下述BIN的值
}

 
BIN=`abs_path` # BIN賦值函數(shù)返回值,如果沒(méi)有return,則函數(shù)中所有的echo、printf輸出組合成一個(gè)字符串傳入BIN
path=${BIN}/nodetool # 可直接使用

輸入輸出重定向

一般情況下,每個(gè) Unix/Linux 命令運(yùn)行時(shí)都會(huì)打開(kāi)三個(gè)文件:

  • 標(biāo)準(zhǔn)輸入文件(stdin):stdin的文件描述符為0,Unix程序默認(rèn)從stdin讀取數(shù)據(jù)。
  • 標(biāo)準(zhǔn)輸出文件(stdout):stdout 的文件描述符為1,Unix程序默認(rèn)向stdout輸出數(shù)據(jù)。
  • 標(biāo)準(zhǔn)錯(cuò)誤文件(stderr):stderr的文件描述符為2,Unix程序會(huì)向stderr流中寫(xiě)入錯(cuò)誤信息。

默認(rèn)情況下,command > file 將 stdout 重定向到 file,command file 將stdin 重定向到 file。
如果希望執(zhí)行某個(gè)命令,但又不希望在屏幕上顯示輸出結(jié)果,那么可以將輸出重定向到 /dev/null:

輸入重定向

  • bash.sh file : 將腳本的輸入重定向到file,由file提供參數(shù)

輸出重定向

  • bash.sh > file : 將腳本的輸出數(shù)據(jù)重定向到file中,覆蓋數(shù)據(jù)
  • bash.sh >> file : 將腳本的輸出數(shù)據(jù)重定向到file中,追加數(shù)據(jù)
  • command >> file 2>1 : 將 stdout 和 stderr 合并后重定向到 file

讀取外部輸入

命令:read arg (腳本讀取外部輸入并賦值到變量上)
在shell腳本執(zhí)行到上述命令時(shí),停止腳本執(zhí)行并等待外部輸入,將外部輸入賦值到arg變量上,繼續(xù)執(zhí)行腳本

文件引用

引用其他的文件之后,可以使用其變量、函數(shù)等等,相當(dāng)于將引用的文件包含進(jìn)了當(dāng)前文件

兩種方式:

  • . file_path\file_name
  • source file_path\file_name

顏色標(biāo)識(shí)

printf "\033[32m SUCCESS: yay \033[0m\n";
printf "\033[33m WARNING: hmm \033[0m\n";
printf "\033[31m ERROR: fubar \033[0m\n";

輸出結(jié)果:

長(zhǎng)句換行

在shell中為避免一個(gè)語(yǔ)句過(guò)長(zhǎng),可以使用“\”進(jìn)行換行
使用“\”換行,在腳本執(zhí)行過(guò)程中還是當(dāng)做一行一個(gè)語(yǔ)句執(zhí)行,不同于enter直接換行

注意:\ 前添加一個(gè)空格 。 \ 后無(wú)空格直接換行。

 /mysql/bin/mysql \

 -h test_host -P 000 \

 -u test_user -ptest_password ;

shell操作mysql

下面案例為登錄mysql,并選擇操作數(shù)據(jù)庫(kù),之后進(jìn)行導(dǎo)入數(shù)據(jù)

 /mysql/mysql/bin/mysql \

 -h test_host -P 000 \

 -u test_user -ptest_password \

 -e"use test_database; source data_faile; " # -e 代表執(zhí)行sql語(yǔ)句

-u 用戶(hù)名
-p 用戶(hù)密碼
-h 服務(wù)器ip地址
-D 連接的數(shù)據(jù)庫(kù)
-N 不輸出列信息
-B 使用tab鍵 代替 分隔符
-e 執(zhí)行的SQL語(yǔ)句

退出腳本

命令:exit

在退出腳本時(shí)使用不同的錯(cuò)誤碼,這樣可以根據(jù)錯(cuò)誤碼來(lái)判斷發(fā)生了什么錯(cuò)誤。

在絕大多數(shù) shell 腳本中,exit 0 表示執(zhí)行成功,exit 1 表示發(fā)生錯(cuò)誤。
對(duì)錯(cuò)誤與錯(cuò)誤碼進(jìn)行一對(duì)一的映射,這樣有助于腳本調(diào)試。

命令:set -e 或者 set +e

set -e表示從當(dāng)前位置開(kāi)始,如果出現(xiàn)任何錯(cuò)誤都將觸發(fā)exit。相反,set +e表示不管出現(xiàn)任何錯(cuò)誤繼續(xù)執(zhí)行腳本。

如果腳本是有狀態(tài)的(每個(gè)后續(xù)步驟都依賴(lài)前一個(gè)步驟),那么請(qǐng)使用set -e,在腳本出現(xiàn)錯(cuò)誤時(shí)立即退出腳本。
如果要求所有命令都要執(zhí)行完(很少會(huì)這樣),那么就使用set +e。

shell腳本調(diào)試

檢查是否有語(yǔ)法錯(cuò)誤-n:

bash -n script_name.sh

使用下面的命令來(lái)執(zhí)行并調(diào)試 Shell 腳本-x:

bash -x script_name.sh

調(diào)試count_odd_number.sh 程序案例:

#!/usr/bin.env bash

# 用于計(jì)算數(shù)組中奇數(shù)的和
# @author liyangyang
# @time 2019/09/17

sum=0
for num in 1 2 3 4;do
 re=${num}%2
 if (( ${re} == 1 ));then
  sum=$[${sum}+${num}]
 fi
done
echo ${sum}

首先檢查有無(wú)語(yǔ)法錯(cuò)誤:

bash -n count_odd_number.sh

沒(méi)有輸出,說(shuō)明沒(méi)有錯(cuò)誤,開(kāi)始實(shí)際調(diào)試:

bash -x count_odd_number.sh

調(diào)試結(jié)果如下:

+ sum=0
+ for num in 1 2 3 4
+ re=1%2
+ (( 1%2 == 1 ))
+ sum=1
+ for num in 1 2 3 4
+ re=2%2
+ (( 2%2 == 1 ))
+ for num in 1 2 3 4
+ re=3%2
+ (( 3%2 == 1 ))
+ sum=4
+ for num in 1 2 3 4
+ re=4%2
+ (( 4%2 == 1 ))
+ echo 4
4

其中的輸出顯示了程序執(zhí)行的每一步,通過(guò)觀察程序執(zhí)行的步驟是否滿足預(yù)期從而達(dá)到調(diào)試的效果
帶有 + 表示的是 Shell 調(diào)試器的輸出,不帶 + 表示程序的輸出。

案例:

這是es(ElasticSearch)官方啟動(dòng)服務(wù)的腳本,看可不可以理解吧~

#!/usr/bin/env bash

# CONTROLLING STARTUP:
#
# This script relies on a few environment variables to determine startup
# behavior, those variables are:
#
# ES_PATH_CONF -- Path to config directory
# ES_JAVA_OPTS -- External Java Opts on top of the defaults set
#
# Optionally, exact memory values can be set using the `ES_JAVA_OPTS`. Note that
# the Xms and Xmx lines in the JVM options file must be commented out. Example
# values are "512m", and "10g".
#
# ES_JAVA_OPTS="-Xms8g -Xmx8g" ./bin/elasticsearch

source "`dirname "$0"`"/elasticsearch-env

parse_jvm_options() {
 if [ -f "$1" ]; then
 echo "`grep "^-" "$1" | tr '\n' ' '`"
 fi
}

ES_JVM_OPTIONS="$ES_PATH_CONF"/jvm.options

ES_JAVA_OPTS="`parse_jvm_options "$ES_JVM_OPTIONS"` $ES_JAVA_OPTS"

# manual parsing to find out, if process should be detached
if ! echo $* | grep -E '(^-d |-d$| -d |--daemonize$|--daemonize )' > /dev/null; then
 exec \

 "$JAVA" \

 $ES_JAVA_OPTS \

 -Des.path.home="$ES_HOME" \

 -Des.path.conf="$ES_PATH_CONF" \

 -cp "$ES_CLASSPATH" \

 org.elasticsearch.bootstrap.Elasticsearch \

 "$@"
else
 exec \

 "$JAVA" \

 $ES_JAVA_OPTS \

 -Des.path.home="$ES_HOME" \

 -Des.path.conf="$ES_PATH_CONF" \

 -cp "$ES_CLASSPATH" \

 org.elasticsearch.bootstrap.Elasticsearch \

 "$@" \

 - 
 retval=$?
 pid=$!
 [ $retval -eq 0 ] || exit $retval
 if [ ! -z "$ES_STARTUP_SLEEP_TIME" ]; then
 sleep $ES_STARTUP_SLEEP_TIME
 fi
 if ! ps -p $pid > /dev/null ; then
 exit 1
 fi
 exit 0
fi

exit $?

到此這篇關(guān)于一篇教會(huì)你寫(xiě)90%的shell腳本(入門(mén)小結(jié))的文章就介紹到這了,更多相關(guān)shell腳本入門(mén)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

您可能感興趣的文章:
  • linux shell(.sh)腳本編寫(xiě)和運(yùn)行入門(mén)
  • Shell腳本編程30分鐘入門(mén)(小結(jié))
  • 分享一個(gè)入門(mén)級(jí)可控多線程shell腳本代碼
  • Linux Shell 腳本編程入門(mén)教程
  • Linux Shell腳本系列教程(一):Shell入門(mén)
  • linux Shell入門(mén):掌握Linux,OS X,Unix的Shell環(huán)境
  • 3000字掃盲shell基礎(chǔ)知識(shí)(新手必備)

標(biāo)簽:常州 河池 黔南 淮南 隴南 河北 通遼 黔南

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《一篇教會(huì)你寫(xiě)90%的shell腳本(入門(mén)小結(jié))》,本文關(guān)鍵詞  一篇,教會(huì),你寫(xiě),90%,的,shell,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問(wèn)題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無(wú)關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《一篇教會(huì)你寫(xiě)90%的shell腳本(入門(mén)小結(jié))》相關(guān)的同類(lèi)信息!
  • 本頁(yè)收集關(guān)于一篇教會(huì)你寫(xiě)90%的shell腳本(入門(mén)小結(jié))的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    主站蜘蛛池模板: 苏州苏鹰机械制造有限公司| 恒麦食品机械有限公司| 射阳 机械有限公司| 苏州勤美达精密机械有限公司| 新力机械制造有限公司| 济宁矿山机械有限公司| 上海展仕机械设备有限公司| 徐州东岳工程机械有限公司| 深圳精密达机械有限公司| 青岛塑料机械有限公司| 郑州世纪精信机械制造有限公司| 富江机械制造有限公司| 中兴机械制造有限公司| 广州东升机械有限公司| 三技精密机械有限公司| 浙江乐江机械有限公司| 河北燕山钢铁有限公司| 机械设备出口有限公司| 涂装机械设备有限公司| 广东恒联食品机械有限公司售后 | 安徽 机械设备有限公司| 安徽唐兴机械装备有限公司| 环保机械设备有限公司| 江苏冶金机械有限公司| 常州坤世精密机械有限公司| 郑州水工机械有限公司招聘| 杭州联德机械有限公司| 山东鲁新起重设备有限公司| 德马格起重机械有限公司| 蚌埠柳工机械有限公司| 粮食机械设备有限公司| 建湖液压机械有限公司| 旭众食品机械有限公司| 长沙机械设备有限公司| 温州新派机械有限公司| 泰田机械制造有限公司| 江苏巨能机械有限公司| 湖北首开机械有限公司| 上海 包装机械有限公司| 青岛凯顿机械有限公司| 马鞍山机械有限公司| 龙工江西机械有限公司| 温州市友田包装机械有限公司| 重庆磐达机械有限公司| 河南飞龙工程机械制造有限公司| 无锡耀杰机械有限公司| 杭州通绿机械有限公司| 合肥机械设备有限公司| 鑫泰数控机械有限公司| 鑫华机械制造有限公司| 江阴市机械有限公司| 太仓九本机械有限公司| 宁波五峰机械有限公司| 山东天龙机械有限公司| 中核机械天津有限公司| 济南欧亚德数控机械有限公司| 天津包装机械有限公司| 江苏天泽精工机械有限公司| 包装机械设备有限公司| 河北正大机械有限公司| 山东枭隆机械有限公司| 鸿江机械制造有限公司| 宁波巨隆机械有限公司| 南京海威机械有限公司| 淄博推进化工机械有限公司| 佛山市信虹精密机械有限公司| 新乡市佳盛振动机械有限公司| 江苏古川机械有限公司| 江阴市机械有限公司| 温州韦盛机械有限公司| 常州久压久机械制造有限公司 | 济南 建筑机械有限公司| 江苏特佳机械有限公司| 中核机械工程有限公司| 凯斯纽荷兰机械 哈尔滨 有限公司 | 湖北襄玉机械有限公司| 宁波机械制造有限公司| 深圳美鹏机械设备有限公司| 山东大信重工有限公司| 深圳市力豪机械设备有限公司| 柳州市机械有限公司| 宁波健信机械有限公司| 山东贝特起重机有限公司| 湖州惠盛机械有限公司| 邢台钢铁有限公司官网| 西安 工程机械有限公司| 佛山市明宏机械设备有限公司 | 江苏锐成机械有限公司| 上海巨远塑料机械有限公司 | 温岭市大众精密机械有限公司 | 辽宁中原机械有限公司| 河北澳金机械设备有限公司| 郑州红星机械制造有限公司| 青岛迪恩机械制造有限公司| 鞍山重工机械有限公司| 苏州威锐机械有限公司| 杭州莱顿机械有限公司| 广州机械制造有限公司| 上海机械刀片有限公司| 太原通泽重工有限公司| 德莱赛机械苏州有限公司| 江苏大圣机械制造有限公司| 新乡市长城机械制造有限公司| 贵州凯星液力传动机械有限公司 | 温岭华驰机械有限公司| 绍兴机械制造有限公司| 山东六丰机械工业有限公司| 东莞市得士威机械工业有限公司| 无锡东元精密机械有限公司| 德州石油机械有限公司| 遵化建龙钢铁有限公司| 浙江起步儿童用品有限公司 | 华威机械制造有限公司| 三星机械制造有限公司| 无锡起重机械有限公司| 天津市钢铁有限公司| 华威焊割机械有限公司| 潍坊西泰机械有限公司| 五洋纺织机械有限公司| 泰田液压机械有限公司| 南通铁军机械有限公司| 河南重机械有限公司| 无锡英那威特机械发展有限公司| 上海德耐尔压缩机械有限公司| 上海金纬机械有限公司| 嘉兴格鲁博机械有限公司| 威海石岛重工有限公司| 河北政博机械制造有限公司| 河南万杰食品机械有限公司| 江阴起重机械有限公司| 济南光先数控机械有限公司| 河南 工程机械有限公司| 济南闽源钢铁有限公司| 郑州宇通重工有限公司| 青岛义龙包装机械有限公司| 南通机械设备有限公司| 山东通佳重工有限公司| 沈阳机械制造有限公司| 宜兴机械设备有限公司| 东莞鸿铭机械有限公司| 江苏中饮机械有限公司| 河南龙工机械制造有限公司| 诸城市华钢机械有限公司| 永宏机械制造有限公司| 福州四兴机械有限公司| 潍坊广德机械有限公司| 台州 精密机械有限公司| 南京佳盛机械设备有限公司| 昆山大风机械有限公司| 杭州建泰机械有限公司| 东莞市泽冠机械有限公司| 丝网机械 有限公司| 日照瑞荣机械有限公司| 固安嘉峰机械有限公司| 林州中奥机械有限公司| 凯伯精密机械有限公司| 吉林吉钢钢铁有限公司| 上海石油机械有限公司| 苏州恩贝德机械有限公司| 华瑞丰机械有限公司| 荆州石油机械有限公司| 小森机械南通有限公司| 日照港达船舶重工有限公司| 沁阳宏达钢铁有限公司| 昆山锦沪机械有限公司| 无锡远方机械有限公司| 张家港港龙机械有限公司| 潍坊天洁机械有限公司| 中山凌宇机械有限公司| 重庆起重机厂有限公司| 三门峡宏基机械有限公司| 华力重工机械有限公司| 上海金湖机械有限公司| 河钢钢铁贸易有限公司| 浙江常至机械有限公司| 江西萍乡钢铁有限公司| 力邦 机械有限公司| 上海舒平精工机械有限公司| 南京佳盛机械设备有限公司| 佛山市宝陶机械设备有限公司| 天津市仁翼钢铁有限公司| 南通贝思特机械工程有限公司| 海华机械制造有限公司| 江苏迎阳无纺机械有限公司| 江阴市祥达机械制造有限公司 | 佛山 机械有限公司| 河南兴邦重工机器有限公司| 无锡通用机械有限公司| 河南龙昌机械有限公司| 常州市豪乐机械有限公司| 广州中益机械有限公司| 宁波瑞铭机械有限公司| 浙江万能弹簧机械有限公司| 宁波梦神床垫机械有限公司| 江苏汉鼎机械有限公司| 派克包装机械有限公司| 川岛洗涤机械有限公司| 大连地拓重工有限公司怎么样| 汉邦机械制造有限公司| 东莞信易电热机械有限公司 | 上海明硕机械有限公司| 上海创灵包装机械制造有限公司 | 盐城益聚达机械有限公司| 机械自动化有限公司| 石嘴山钢铁有限公司| 上海钦典机械制造有限公司| 青县冀丰钢铁有限公司| 杭州海兴机械有限公司| 台一精工机械有限公司| 河北永明地质工程机械有限公司| 浙江超力机械有限公司| 工程机械销售有限公司| 江苏科力机械有限公司| 烟台金土源机械化工程有限公司| 泉州市工程机械有限公司| 广东川德机械有限公司| 海之力机械有限公司| 江苏海陵机械有限公司| 苏州阔泽精密机械有限公司| 浙江全兴机械制造有限公司| 自动化机械设备有限公司| 东莞宏彰机械有限公司| 上海霏润机械设备有限公司| 创宝包装机械有限公司| 深圳 机械设备有限公司| 东莞市腾机械有限公司| 锋机械设备有限公司| 泰安华伟重工有限公司| 无锡传动机械有限公司| 上海颖盛机械有限公司| 合肥锦利丰机械有限公司| 东莞市兆恒机械有限公司| 浙江自力机械有限公司| 河南黎明路桥重工有限公司| 济南大彤机械设备有限公司| 新乡市新久振动机械有限公司| 江苏双轮泵业机械制造有限公司 | 台州瑞进机械有限公司| 昆成机械制造有限公司| 伊之密机械有限公司| 邯郸纺织机械有限公司| 广州乾能机械制造有限公司| 杭州速能机械有限公司| 常州汤姆包装机械有限公司| 大连万阳重工有限公司| 营口京华钢铁有限公司招聘| 大连连美机械有限公司| 山东宇龙机械有限公司| 临西中伟机械有限公司| 深圳美鹏机械设备有限公司| 上海北阅机械设备有限公司| 上海星贝包装机械有限公司| 苏州勤美达精密机械有限公司| 湖州二轻机械有限公司| 徐州随车起重机有限公司| 河南东盈机械设备有限公司| 山东长城起重机械有限公司| 广州市瑞扬机械设备有限公司| 高臻机械机械有限公司| 山东同力达智能机械有限公司| 青岛欧普机械设备有限公司| 宁波必沃纺织机械有限公司| 华亿机械制造有限公司| 江苏迪迈机械有限公司| 沈阳矿山机械有限公司| 上海沪临重工有限公司| 沈阳矿山机械有限公司| 南京机械制造有限公司| 浙江金华机械有限公司| 内蒙古机械有限公司| 湖北昌胜机械设备制造有限公司| 徐州七星机械有限公司| 深圳起航电商有限公司| 常州聚武机械有限公司| 合肥福晟机械制造有限公司| 江苏桂铭机械有限公司| 浙江欧迈特减速机械有限公司 | 常州制药机械有限公司| 东莞正扬电子机械有限公司怎么样| 芜湖机械制造有限公司| 江苏恒悦机械有限公司| 青岛明高机械有限公司| 信息技术有限公司起名| 眉山千层弹花机械有限公司| 山东泰峰起重设备制造有限公司| 无锡六叶机械有限公司| 浙江杰豹机械有限公司| 湘元三一机械有限公司| 宁波迈拓斯数控机械有限公司| 大连橡塑机械有限公司| 中实洛阳重型机械有限公司| 湘潭 机械制造有限公司| 无锡伊诺特石化机械设备有限公司| 登福机械上海有限公司| 河南省机械有限公司| 绵阳科睿机械有限公司| 常州创机械有限公司| 临沂华星机械有限公司| 蓬莱大金海洋重工有限公司| 河北大恒重型机械有限公司| 贵州工程机械有限公司| 百超玻璃机械有限公司| 山东工大机械有限公司| 南京巴蜀机械有限公司| 青岛谊金华塑料机械有限公司| 大连铸鸿机械有限公司| 德龙钢铁有限公司地址| 乐清市机械有限公司| 杭州天杨机械有限公司| 江源机械制造有限公司| 新疆起亚铝业有限公司招聘| 泰田液压机械有限公司| 青岛中华宇塑料机械有限公司| 宝鸡南车时代工程机械有限公司 | 徐州圣邦机械有限公司| 苏州博扬机械有限公司| 山西万泽锦达机械制造有限公司 | 张家港机械有限公司| 莆田 机械有限公司| 广州田田机械设备有限公司| 山东 纺织机械 有限公司| 浩博海门机械有限公司| 常州华机械有限公司| 东莞豪力机械有限公司| 东平开元机械有限公司| 华夏机械设备有限公司| 杭州胜驰机械有限公司| 江苏冠宇机械设备制造有限公司 | 庆达机械制造有限公司| 曲阜圣达机械有限公司| 温州惠利机械有限公司| 江苏江成机械有限公司| 上海石化机械制造有限公司| 重庆茂田机械有限公司| 南通机械制造有限公司| 江阴博纬机械有限公司| 安微博达重工有限公司| 广州机械有限公司招聘| 北京工程机械有限公司| 无锡市丰玮机械设备有限公司| 东莞沃德精密机械有限公司| 温州名瑞机械有限公司| 河南永康机械有限公司| 东莞市台铭数控机械有限公司| 重庆动霸机械制造有限公司| 成都松茂工程机械有限公司| 杭州丽伟电脑机械有限公司| 台州宏汇机械有限公司| 荣龙精密机械有限公司| 东莞市金拓机械有限公司| 北京市政中燕工程机械制造有限公司 | 安丘博阳机械制造有限公司 | 长春泰盟机械制造有限公司| 常州先电机械有限公司| 太仓九本机械有限公司| 山东长城起重机械有限公司| 中山冠力机械有限公司| 浙江鼎业机械设备有限公司| 东莞亮剑机械有限公司| 北京火车头机械设备有限公司 | 温州机械制造有限公司| 衢州 机械有限公司| 山东钢铁贸易有限公司| 温州设备机械有限公司| 河南省邦恩机械制造有限公司| 广州惠辉机械设备有限公司| 俊杰机械深圳有限公司| 爱克苏州机械有限公司| 上海 包装机械 有限公司| 浙江超伟机械有限公司| 河北龙汐机械制造有限公司| 扬州 液压机械有限公司| 石油机械设备有限公司| 河北神耕机械有限公司| 济南梓鑫机械有限公司| 富达机械制造有限公司| 碎得机械北京有限公司| 山东青州机械有限公司| 天阳机械制造有限公司| 苏州琦珏机械有限公司| 常矿起重机械有限公司| 山东山推机械有限公司| 聊城日发纺织机械有限公司| 上海神农机械有限公司| 台州欧玮机械有限公司| 天马电子机械有限公司| 河源德润钢铁有限公司| 浙江正信机械有限公司| 苏州晋日五金机械有限公司| 工程机械有限公司经营范围 | 东莞市通机械有限公司| 唐山正丰钢铁有限公司| 深圳创世纪机械有限公司| 天津重型机械有限公司| 山东液压机械有限公司| 圣固 江苏 机械有限公司| 贝斯特机械有限公司| 广州市机械有限公司| 常州天山重工机械有限公司| 山东川大机械设备有限公司| 南京科倍隆机械有限公司| 佰源机械有限公司欠款| 浙江达青机械有限公司| 上海隆康机械设备有限公司| 天津天丰钢铁有限公司| 黄山市机械有限公司| 洛阳中收机械装备有限公司招聘 | 温州市鹿城江心服装机械有限公司 | 上海杰伟机械制造有限公司| 南通振康机械有限公司| 威马农业机械有限公司| 江苏苏东机械有限公司| 潍坊沃富机械有限公司| 河北澳金机械设备有限公司| 常州自力化工机械有限公司| 东莞恒力机械有限公司| 上海派协包装机械有限公司| 杭州天恒机械有限公司| 上海宇减传动机械有限公司| 徐州 机械制造有限公司| 山东长江机械有限公司| 合肥市春晖机械制造有限公司| 机械装备制造有限公司| 广西五丰机械有限公司| 德枫丹青岛机械有限公司招聘| 浙江海蜜机械有限公司| 山东重特机械有限公司| 广州工友起重设备制造有限公司| 山东泰山起重机械有限公司 | 杭州丰波机械有限公司| 徐州随车起重机有限公司 | 常州艾隆精密机械有限公司| 山东工大机械有限公司| 上海伍行机械设备有限公司| 武汉萱裕机械有限公司| 海盛精密机械有限公司| 上海光华印刷机械有限公司| 温州市友田包装机械有限公司| 葛洲坝机械船舶有限公司| 邢台市振成机械有限公司| 郑州重工机械有限公司| 滨州市机械有限公司| 岳阳神冈起重电磁铁有限公司| 青岛云龙纺织机械有限公司| 山东九环石油机械有限公司| 三马起重机有限公司| 延边金科食品机械有限公司| 东莞市日东超声波机械有限公司| 昆山鑫建诚机械设备有限公司| 杭州雅顿过滤机械有限公司| 常州步速者机械制造有限公司| 玻璃设备机械有限公司| 宁波机械设备有限公司| 温州正钻机械有限公司| 常州欧鹰焊割机械有限公司 | 新疆八一钢铁有限公司| 嘉泰数控机械有限公司| 山东德州恒特重工有限公司| 兰州华诚石化机械制造有限公司 | 中山凌宇机械有限公司| 邢工机械制造有限公司| 玉环方博机械有限公司| 河北巨牛机械有限公司| 上海磊友成套机械设备有限公司 | 济南包装机械有限公司| 昆荣机械(昆山)有限公司| 东莞达机械有限公司| 广州起航贸易有限公司| 锦辉五金机械有限公司| 南通艾迈特机械有限公司| 溧阳科华机械制造有限公司| 浙江炜冈机械有限公司| 江阴市祥达机械制造有限公司 | 大连精密机械有限公司| 浙江瑞安机械有限公司| 河北德林机械有限公司| 浙江耐士伦机械有限公司| 成都鑫泽机械有限公司| 小松山推工程机械有限公司| 唐山瑞兴钢铁有限公司| 慈溪市机械有限公司| 无锡宝露重工有限公司| 昌利机械制造有限公司| 永腾弹簧机械设备有限公司| 永康市机械有限公司| 上海奉业包装机械有限公司| 业精机械制造有限公司| 协展机械工业有限公司| 招商局重工(江苏)有限公司| 苏州精创机械有限公司| 山东嘉和机械有限公司| 精密机械制造有限公司| 郑州郑瑞机械有限公司| 山东大信重工有限公司| 营口金辰机械有限公司| 上海松川远亿机械设备有限公司 | 厦门市机械设备有限公司| 柳州富达机械有限公司官网| 山东鲁一机械有限公司| 广州田田机械有限公司| 冈热机械常州有限公司| 苏州凯尔博精密机械有限公司| 史陶比尔精密机械电子有限公司 | 青岛凯顿机械有限公司| 丰诺植保机械制造有限公司| 山西机械制造有限公司| 杭州恒机械有限公司| 中山力劲机械有限公司| 维美德造纸机械技术有限公司| 太仓鸿安机械有限公司| 北京大森长空包装机械有限公司| 江苏鑫林钢铁有限公司| 德实机械平湖有限公司| 山东运泰机械有限公司| 烟台绿林机械设备制造有限公司| 山东瑞华工程机械有限公司| 安徽威萨重工机械有限公司 | 张家港市港达机械有限公司| 上海松川远亿机械设备有限公司| 山东纺织机械有限公司| 苏州威邦自动化机械有限公司| 深圳市高郭氏精密机械有限公司 | 山东港中钢铁有限公司| 金马机械制造有限公司| 河北中伟机械有限公司| 宣化华泰矿冶机械有限公司| 山东山特重工机械有限公司| 绍兴三纺机械有限公司| 诸城市鼎康机械有限公司| 恒瑞机械制造有限公司| 塑料机械 有限公司| 江苏迎阳无纺机械有限公司| 宁波隆源精密机械有限公司| 吉首市中诚制药机械有限公司| 太仓鸿安机械有限公司| 深圳市铭利达精密机械有限公司| 元昆机械(昆山)有限公司| 宁波壬鼎机械有限公司| 江苏奥马机械有限公司| 福建省晋江市和盛机械有限公司 | 陕西鑫钢机械有限公司| 南京泽创机械有限公司| 上海德耐尔压缩机械有限公司| 江阴钢铁贸易有限公司| 扬州中建建设机械有限公司| 输送机械设备有限公司| 玉溪新兴钢铁有限公司| 宁波敏达机械有限公司| 广意永雄机械有限公司| 环保机械设备有限公司| 海宁诚达机械有限公司| 杭州中亚机械 有限公司| 福州六和机械有限公司| 佛山隆机械有限公司| 恒天九五重工有限公司| 青岛武船重工有限公司| 上海震伦机械有限公司| 上海乾承机械设备有限公司| 深圳市鑫台铭机械设备有限公司| 桂林恒达矿山机械有限公司| 雅康精密机械有限公司| 唐山龙泉机械有限公司| 杭州神钢建设机械有限公司| 青岛明高机械有限公司| 上海玖钲机械设备有限公司 | 广州新欧机械有限公司| 潍坊二川机械有限公司| 山东长城起重机械有限公司 | 绵阳新晨动力机械有限公司招聘 | 江苏新美星包装机械有限公司| 福建鼎盛钢铁有限公司| 重庆文安机械有限公司| 广州新欧机械有限公司| 常德烟草机械有限公司| 中核华兴达丰机械工程有限公司 | 济南启正机械工业有限公司| 中农丰茂植保机械有限公司| 安徽泰恒机械制造有限公司| 杭州星宏机械有限公司| 南京远景机械有限公司| 苏州苏鹰机械制造有限公司| 玛连尼 法亚机械有限公司| 广东鸿业机械有限公司| 江苏新技机械有限公司| 合肥旭龙机械有限公司| 厦门东亚机械有限公司| 机械加工 有限公司| 南通盛仕达精密机械有限公司| 中泰机械设备有限公司| 上海矿山机械有限公司| 扬州机械设备有限公司| 江苏舜工机械有限公司| 湖北 机械制造有限公司| 苏州友众传动机械有限公司| 中山中炬精工机械有限公司| 常州 机械制造有限公司| 镇田机械平湖有限公司| 河北冠能石油机械制造有限公司| 上海龙工机械有限公司| 尤工机械设备有限公司| 江苏中饮机械有限公司| 安丘博阳机械制造有限公司| 宁波江北机械有限公司| 上海百勤机械有限公司| 苏州金纬机械制造有限公司| 苏州机械制造有限公司| 汕头 机械有限公司招聘| 济南聚鑫机械有限公司| 无锡大昌机械工业有限公司| 郑州市恒昌机械制造有限公司 | 广东信昌机械有限公司| 湖州核汇机械有限公司| 有限公司 印刷机械| 威海达盛机械有限公司| 石家庄食品机械有限公司| 山西太行钢铁有限公司| 上海传动机械有限公司| 常州好迪机械有限公司| 常州玫尔机械有限公司| 上海春日机械工业有限公司 | 湖南正中制药机械有限公司| 青岛兴机械有限公司| 广汉市蜀汉粮油机械有限公司| 自动化机械设备有限公司| 山东传洋钢铁有限公司| 鑫盛机械制造有限公司| 南京海威机械有限公司| 林州中奥机械有限公司| 安徽康乐机械有限公司| 杭州萧山机械有限公司| 佛山市明宏机械设备有限公司| 山东鲁机械有限公司| 苏拉纺织机械有限公司| 广州市三禾机械有限公司| 嵩县煜嵩机械有限公司| 潍坊浩泰机械有限公司| 山东小康机械有限公司| 浙江铸信机械有限公司| 无锡市阳通机械设备有限公司| 东莞钰兴机械有限公司| 潍坊机械制造有限公司| 江苏佳成机械有限公司| 重庆爱扬机械有限公司| 中热机械设备有限公司| 浙江大源机械有限公司| 广州新成机械技术有限公司| 上海毅锴机械有限公司| 河北工程机械有限公司| 广东机械制造有限公司| 东莞自动化机械有限公司| 青州康达机械有限公司| 诸城海宝环保机械有限公司| 沧州卓鑫机械设备制造有限公司 | 天津 津工机械有限公司| 东莞市固达机械制造有限公司| 绍兴金江机械有限公司| 苏州伟鼎机械设备有限公司 | 常州机械制造有限公司| 河北宏业机械有限公司| 广州九盈机械有限公司| 东莞兆泰机械设备有限公司| 枣庄誉源挂车机械有限公司| 上海曼亿包装机械有限公司| 南京聚力化工机械有限公司| 河北雪龙机械制造有限公司| 山推抚起机械有限公司| 特斯克机械有限公司| 铜陵市富鑫钢铁有限公司| 维特根机械有限公司| 华宇机械制造有限公司| 山东浩信机械有限公司| 杭州瑞东机械有限公司| 山东大启机械有限公司| 济宁金牛重工有限公司| 山东恒旺机械有限公司| 济宁萨奥机械有限公司| 威海印刷机械有限公司| 山东誉亚大豆机械制造有限公司| 东阳机械设备制造有限公司 | 星 精密机械有限公司| 杭州杭奥机械有限公司| 浙江液压机械有限公司| 辽阳喜旺机械制造有限公司| 厦门大禾众邦机械有限公司| 广州华臻机械设备有限公司| 浙江兄弟包装机械有限公司| 强大印刷机械有限公司| 郑州中联收获机械有限公司| 山东锐驰机械有限公司| 泉州泉丰机械有限公司| 成都机械设备有限公司| 德枫丹 青岛 机械有限公司招聘| 徐州中嘉工程机械有限公司| 苏州工业园区机械有限公司| 广东美特机械有限公司| 上海轻工机械有限公司| 布勒机械设备有限公司| 广州 机械设备有限公司| 韶瑞重工有限公司招聘| 东莞市森佳机械有限公司| 杭州玻璃机械有限公司| 江阴机械制造有限公司| 曼透平机械有限公司| 东莞利瀚机械有限公司| 浙江人和机械有限公司| 锋机械设备有限公司| 广州市台展机械有限公司| 上海冠隆阀门机械有限公司| 肥城金塔机械有限公司| 厦门厦工重工有限公司| 苏州盈合机械有限公司| 吴江机械设备有限公司| 南通新兴机械制造有限公司| 天津新港船舶重工有限公司| 广东机械制造有限公司| 鹤壁万丰矿山机械制造有限公司 | 永盛机械设备有限公司| 上海法德机械设备有限公司| 杭州海兴机械有限公司| 葛洲坝能源重工有限公司| 重庆恒科机械制造有限公司| 山东川普机械有限公司| 浙江制药机械有限公司| 天津国际机械阀门有限公司| 上海众德机械有限公司| 襄阳 机械 有限公司| 安徽金庆龙机械制造有限公司| 旭东机械昆山有限公司| 江苏昆仲机械有限公司| 沈阳带锯机械有限公司| 科润达机械有限公司| 东风井关农业机械有限公司| 保定兴旺机械有限公司| 华威机械制造有限公司| 武汉日晗精密机械有限公司| 上海隆康机械设备有限公司| 北京城建重工有限公司| 河南 机械设备有限公司| 大连军峰机械有限公司| 东莞市 五金机械有限公司| 济宁恒远机械有限公司| 江苏泰美环保机械有限公司| 浙江炬达机械有限公司| 重庆川凯机械有限公司| 西安柳工机械有限公司| 张市机械机械有限公司| 成都成邦探矿机械设备有限公司 | 广西徐重机械有限公司| 湖北机械设备有限公司| 鄂州鸿泰钢铁有限公司| 启东丰顺重工有限公司| 台州市双辉机械设备有限公司 | 烟台拓伟机械有限公司| 昆山合济机械有限公司| 深圳创能机械有限公司| 山东 食品机械 有限公司| 太仓悦凯精密机械有限公司| 泰州机械设备有限公司| 山东鲁丽钢铁有限公司| 诸城市天顺机械有限公司| 南京拓源钢铁有限公司| 山东宇龙机械有限公司| 佛山松川机械设备有限公司| 重庆瀚源机械有限公司| 上海凌鹰机械有限公司| 陕西通运机械有限公司| 上海松仕机械设备有限公司| 山东永健机械有限公司| 江苏谷登工程机械装备有限公司 | 江苏如皋钢铁有限公司| 佛山市顺德区金工铝门窗机械实业有限公司 | 浙江路杰机械有限公司| 徐州斗山工程机械有限公司| 巩义市瑞赛克机械设备有限公司 | 深圳市康铖机械设备有限公司| 河南宝润机械有限公司| 杭州宏展机械有限公司| 四川诚德机械有限公司| 中船重工环境工程有限公司| 江阴江顺精密机械零部件有限公司| 精雕精密机械有限公司| 昆山市烽禾升精密机械有限公司 | 上海紫明印刷机械有限公司 | 蓬莱万寿机械有限公司| 河北航天振邦精密机械有限公司| 纽科伦起重机有限公司| 上海精元机械有限公司| 湖南鼎峰机械有限公司| 张家港市机械有限公司| 三鑫重工机械有限公司| 深圳市海德精密机械有限公司| 常州液压机械有限公司| 青岛万邦包装机械有限公司| 保定向阳航空精密机械有限公司| 杭州中力机械设备有限公司| 咸阳经纬纺织机械有限公司| 潍坊钰兴机械有限公司| 上海集嘉机械有限公司| 中山市包装机械有限公司| 宁波市鸿博机械制造有限公司| 徐州天地重型机械制造有限公司| 无锡市丰玮机械设备有限公司 | 嵩县煜嵩机械有限公司| 国浩机械制造有限公司| 东莞培锋精密机械有限公司| 武汉千里马工程机械有限公司| 杭州雅顿过滤机械有限公司| 郑州工程机械有限公司| 扬州 液压机械有限公司| 陕西 机械有限公司| 江苏海豚船舶机械有限公司| 青岛鲁奥机械有限公司| 沈阳西城钢铁有限公司| 龙海起重工具有限公司| 南方路面机械有限公司| 河南省新乡市矿山起重机有限公司 | 洛阳机械设备有限公司| 潍坊坊通机械有限公司| 宁波甬龙机械有限公司| 天津市华天世纪机械有限公司 | 滕州市美力机械有限公司| 新风工程机械有限公司| 浙江天联机械有限公司| 邦贝机械制造有限公司| 广州嘉银机械有限公司| 莱州弘宇机械有限公司| 唐山丰润区钢铁有限公司| 沈阳奎鑫钢铁有限公司| 广东华冠钢铁有限公司| 马鞍山 机械有限公司| 深圳市美鹏机械设备有限公司| 溧阳金纬机械有限公司| 泉州市劲力工程机械有限公司| 林州中奥机械有限公司| 瑞安市瑞博机械有限公司| 山东明沃机械有限公司| 山东机械制造有限公司| 台一精工机械有限公司| 山东重工机械有限公司| 广州伟基机械有限公司| 东莞伟机械有限公司| 宁波联成机械有限公司| 启东丰顺重工有限公司| 杰西博工程机械有限公司| 鑫成机械设备有限公司| 广东中远海运重工有限公司| 广州伟乐机械设备有限公司 | 杭州 尔机械有限公司| 青岛华牧机械有限公司| 东莞亮剑机械有限公司| 苏州毕特富精密机械有限公司 | 浙江正润机械有限公司| 大连胜龙包装机械有限公司| 武汉鑫金泽机械有限公司| 杭州纺织机械有限公司| 张家港白熊科美机械有限公司| 环保设备机械有限公司| 杭州起重机械有限公司| 启瑞机械广州有限公司| 昌邑市机械有限公司| 山东机械制造有限公司| 俊杰机械深圳有限公司| 扬州高标机械有限公司| 天津德尚机械有限公司| 常州市永明机械制造有限公司| 南阳 机械 有限公司| 江阴市江顺机械有限公司| 江苏华粮机械有限公司| 济宁朝阳机械有限公司| 粤裕丰钢铁有限公司| 厦门市机械有限公司| 汕头机械厂有限公司| 山东六丰机械工业有限公司| 吉林牧神机械有限公司| 东莞市欧西曼机械设备有限公司| 苏州杰威尔精密机械有限公司| 江阴市勤业化工机械有限公司| 瑞迪机械实业有限公司| 万通机械制造有限公司| 才美机械制造(上海)有限公司| 温州市鹿城江心服装机械有限公司 | 汇大机械制造有限公司| 山东正阳机械有限公司| 南牧机械有限公司招聘| 山东 重工有限公司| 沙钢永兴钢铁有限公司| 昆山市贝纳特机械设备有限公司 | 张家港市饮料机械有限公司| 吴江迈锐机械有限公司怎么样| 东莞%机械%有限公司| 中兴机械制造有限公司| 江苏方邦机械有限公司| 广州坚诺机械设备有限公司| 天津市三鼎包装机械有限公司| 河北石阀机械设备有限公司| 上海舜诺机械有限公司| 山东起重机械有限公司| 昆明机械制造有限公司| 常州国丰机械有限公司| 浙江富地机械有限公司| 山东大华机械有限公司| 河南省黄河防爆起重机有限公司| 上海恒麦食品机械有限公司| 环保机械设备有限公司| 重庆辉昌机械设备有限公司| 湖北华伟石化机械设备制造有限公司| 沈阳瑞熠机械有限公司| 宁波美亚特精密机械有限公司 | 上海起重运输机械厂有限公司 | 江阴市永昌药化机械有限公司 | 江苏正合重工有限公司| 上海起帆电线电缆有限公司| 大连升隆机械有限公司| 郑州水工机械有限公司| 郑州明瑞机械设备有限公司| 柳州中源机械有限公司| 山东河山机械有限公司| 连云港兴鑫钢铁有限公司| 山东川普机械有限公司| 涂装机械设备有限公司| 临清市机械有限公司| 温州市春来包装机械有限公司 | 上海映易包装机械设备有限公司| 中山市凌宇机械有限公司| 云南旷迪机械有限公司| 嘉兴市宏丰机械有限公司| 农友机械设备有限公司| 深圳包装机械有限公司| 烟台精越达机械设备有限公司| 浏阳 机械有限公司| 河南江河机械有限公司| 常州艾隆精密机械有限公司 | 浙江科鑫重工有限公司| 南通恩派特机械有限公司| 重庆海松机械有限公司| 杭州大禹机械有限公司| 武汉东泰盛机械有限公司| 南平 机械 有限公司| 四川德盛钢铁有限公司| 郑州同鼎机械设备有限公司| 力顺源机械有限公司| 东方机械制造有限公司| 苏州明基自动化机械设备有限公司 | 天津英德诺机械设备有限公司 | 上海宏铭纺织机械有限公司| 曲阜圣泰机械有限公司| 佛山机械设备有限公司| 天津市精密机械有限公司| 湖北鄂重重型机械有限公司| 工程的机械设备有限公司| 北京盛美食品机械有限公司| 重庆金丰机械有限公司| 广州广重分离机械有限公司| 温州工程机械有限公司| 河南宝润机械有限公司| 广西徐重机械有限公司| 安徽鸿泰钢铁有限公司| 上海龙工机械有限公司| 万兹莱压缩机械(上海)有限公司| 郑州双狮粮油机械有限公司| 湖北江华机械有限公司| 上海华预机械制造有限公司| 矿山机械设备有限公司| 世创机械制造有限公司| 上海钢铁贸易有限公司| 邢台振成机械有限公司| 重庆旺田机械有限公司| 洛阳翼明机械有限公司| 上海以海机械有限公司| 泉州得力农林机械有限公司| 昆山合济机械有限公司| 爱可机械深圳有限公司| 舒勒锻压机械有限公司| 青岛木工机械有限公司| 杭州同创顶立机械有限公司| 建湖华祥机械有限公司| 江西鑫通机械制造有限公司| 新乡市辰威机械有限公司| 宁波方力机械有限公司| 泉州机械设备有限公司| 湖南博长钢铁贸易有限公司| 大连典石精密机械有限公司 | 河南隧通机械有限公司| 如皋市联创捏合机械有限公司| 诸城市机械有限公司| 无锡旭英机械有限公司| 镇江机械设备有限公司| 四川广鑫粮油机械制造有限公司| 辽宁富一机械有限公司| 广州磊蒙机械设备有限公司| 广州善友机械设备有限公司| 无锡澳美机械有限公司| 浙江风驰机械有限公司| 南京金城机械有限公司| 东莞安默琳机械制造技术有限公司| 山西中德科工机械制造有限公司 | 烟台莫深机械设备有限公司| 上海科峰机械有限公司| 湖州机械设备有限公司|