Shell學習筆記

1、Shell中常見的一些語法

一、 $0、$一、$2

  • $0 就是你寫的shell腳本自己的名字
  • $1 是你給你寫的shell腳本傳的第一個參數
  • $2 是你給你寫的shell腳本傳的第二個參數

好比你新建了一個shell腳本 Test.sh, 內容以下:shell

#!/bin/sh
echo "shell腳本自己的名字: $0"
echo "傳給shell的第一個參數: $1"
echo "傳給shell的第二個參數: $2"

保存退出後,你在Test.sh所在的目錄下輸入 bash Test.sh 1 2bash

結果爲:oop

shell腳本自己的名字: Test.sh
傳給shell的第一個參數: 1
傳給shell的第二個參數:  2

二、if語句的語法

  • if-else的基本用法:
if條件+then操做+else操做+fi閉合

  • if單條件多分支:

  • if [ $? -eq 0 ]; then

  shell腳本中$?是指上一次命令執行的成功或者失敗的狀態。若是成功就是0,失敗爲1.。語句if [ $? -eq 0 ] 是判斷if語句的上一個命令執行若是成功就執行if中的語句,不然就執行else中的內容。code

  使用時要注意,if後面的中括號[ $? -eq 0 ],括號的兩邊須要有一個空格。blog

#判斷hdfs上的path路徑是否存在
#hadoop fs -test -e 判斷路徑,存在返回0
hadoop fs -test -e path
if [ $? -eq 0 ]; then
		echo "====此路徑存在!===="
else
		echo "====此路徑不存在!===="
		exit 1
fi
$0: shell或shell腳本的名字
$*:以一對雙引號給出參數列表
$@:將各個參數分別加雙引號返回
$#:參數的個數
$_:表明上一個命令的最後一個參數
$$:表明所在命令的PID
$!:表明最後執行的後臺命令的PID
$?:表明上一個命令執行後的退出狀態

-eq     等於,如:if ["$a" -eq "$b" ]
-ne     不等於,如:if ["$a" -ne "$b" ]
-gt     大於,如:if ["$a" -gt "$b" ]
-ge    大於等於,如:if ["$a" -ge "$b" ]
-lt      小於,如:if ["$a" -lt "$b" ]
-le      小於等於,如:if ["$a" -le "$b" ]
<  小於(須要雙括號),如:(("$a" < "$b"))
<=  小於等於(須要雙括號),如:(("$a" <= "$b"))
>  大於(須要雙括號),如:(("$a" > "$b"))
>=  大於等於(須要雙括號),如:(("$a" >= "$b"))

2、HDFS 經常使用 Shell 命令

轉載於:https://www.imooc.com/article/308449hadoop

相關文章
相關標籤/搜索