上一節(jié)課發(fā)現(xiàn)問題璧疗?
"-n"使用存在問題?
錯誤代碼
val="Hello"
if [ -n $val ]
then
echo "存在"
else
echo "不存在"
fi
正確代碼
val="Hello"
if [ -n "$val" ]
then
echo "存在"
else
echo "不存在"
fi
內(nèi)容一:Shell腳本語言->文件包含烈拒?
語法一:./filename
文件A->fileA.sh
腳本內(nèi)容
#!/bin/bash
echo "我是文件A"
文件B->fileB.sh
腳本內(nèi)容
#!/bin/bash
#文件B包含文件A
./fileA.sh
echo "我是文件B"
執(zhí)行腳本命令
./fileB.sh
語法二:source filename.sh
注意:source是一個關(guān)鍵字
文件A->fileA.sh
腳本內(nèi)容
#!/bin/bash
echo "我是文件A"
文件B->fileB.sh
腳本內(nèi)容
#!/bin/bash
#文件B包含文件A
source ./fileA.sh
echo "我是文件B"
執(zhí)行腳本命令
./fileB.sh
內(nèi)容二:Shell腳本語言->cat命令->簡單介紹->后面還會大量用到
作用:
作用一:查看文件內(nèi)容
作用二:連接文件
作用三:創(chuàng)建一個文件或者多個文件
作用四:重定向輸出到終端
作用五:重定向到文件
語法:cat [選項] [文件]
案例演示
案例一:查看文件內(nèi)容
cat fileA.sh
案例二:cat -n fileA.sh
-n選項:可以顯示文件內(nèi)容和行號
案例三:cat -b fileA.sh
-b選項:和"-n"類似功能,但是只標記非空白行行號
案例四:cat -e fileA.sh
-e選項:在每一行內(nèi)容最后加入了一個"$"符號,在需要將多行內(nèi)容轉(zhuǎn)換為一行內(nèi)容的時候掂摔,非常有用(后面腳本學習,不是很多)->自己試一試
案例五:cat
接收標準輸入赢赊,同時還會輸出標準輸出(敲回車鍵即可)
退出:control + c
內(nèi)容三:Shell腳本語言->獲取用戶輸入->read命令
1乙漓、接收一個輸入內(nèi)容
寫法一
echo "請輸入你的名字:"
read name
echo "您的名字是:${name}"
寫法二
read -p "請輸入你的名字:" name
echo "您的名字是:${name}"
2、超時->輸入時候释移,你過了多少秒沒有輸入叭披,那么過期
計時器
if read -t 6 -p "請輸入你的名字:" name
then
echo "您的名字是:${name}"
else
echo
echo "超時"
fi
3、隱藏輸入的內(nèi)容->"-s"->類似于輸入密碼
read -s -p "請輸入您密碼:" pwd
echo "您的密碼是:${pwd}"
4玩讳、從文件里面讀取內(nèi)容
cat fileB.sh | while read line
do
echo "內(nèi)容:${line}"
done
下一節(jié)課:管道
接收輸入一行:read name
接收輸入多行:while read name
內(nèi)容四:Shell腳本語言->printf命令使用
1涩蜘、printf命令和echo命令區(qū)別嚼贡?
區(qū)別一
printf不會換行
echo自動換行
區(qū)別二
printf:一般用于格式打印
echo:用于標準輸出
2、printf語法結(jié)構(gòu)
printf format-string 參數(shù)列表
3同诫、printf案例
案例一
#打印輸出表頭
printf "%-10s %-8s %-4s \n" 姓名 性別 體重kg
#打印輸出內(nèi)容
printf "%-10s %-8s %-4s \n" Andy 男 64kg
printf "%-10s %-8s %-4s \n" jar 男 65kg
printf "%-10s %-8s %-4s \n" 帥牛哥 男 100kg
注意一:"%-10s"指的是一個寬度為10個字符粤策,"-"表示左對齊
假設(shè):%-4s 長度:"AndyAndy"
s:表示字符串(字符)
注意二:"%-4.2f"指的是一個寬度為4,小數(shù)點2位误窖,"f"表示小數(shù)
…
案例二
3.1 printf format-string為雙引號
printf "%d %s \n" 1 "Dream"
3.2 printf format-string為單引號
printf '%d %s \n' 1 "Dream"
3.3 printf format-string沒有號
錯誤寫法
printf %d %s 1 "Dream"
正確寫法->指定一個允許的
printf %d "Dream"
3.4 多個參數(shù)輸出
printf "%d %s \n" 1 "Dream"
4叮盘、printf轉(zhuǎn)義字符
printf " "<%s>" " "Dream"
內(nèi)容五:Shell腳本語言->函數(shù)
1、語法結(jié)構(gòu)
[function] 方法名稱(){
邏輯代碼
}
2霹俺、案例分析
定義方法
function testFunc(){
echo "Hello world"
}
調(diào)用方法
echo "調(diào)用前"
testFunc
echo "調(diào)用后"
swift->典型腳本寫法
func test(){
}
內(nèi)容六:Shell腳本語言->輸入/輸出重定向熊户?
1、學習->輸入/輸出重定向->控制臺/文件
1.1 輸入重定向->語法
語法結(jié)構(gòu):wc 名稱名稱
1.1.1 "<":輸入重定向
命令代碼:wc fileA.sh
將fileA中內(nèi)容讀取到控制臺
wc讀取到了三個重要信息
第一個參數(shù):文本行數(shù)
第二個參數(shù):文本詞數(shù)
第三個參數(shù):文本字節(jié)數(shù)
1.1.2 "<<":創(chuàng)建文件
cat命令
1.2 輸出重定向
1.2.1 ">":我們把方向指向一份文件吭服,那么將文件中的內(nèi)容刪除嚷堡,寫入新的內(nèi)容
腳本文件fileA.sh代碼
#!/bin/bash
echo "我是文件A"
腳本文件fileB.sh代碼
#!/bin/bash
echo "我是文件B"
echo "Hello Dream" > fileA.sh
執(zhí)行腳本代碼
./fileB.sh
總結(jié):替換內(nèi)容->將fileB.sh輸出內(nèi)容替換了fileA.sh中內(nèi)容
1.2.2 ">>":追加
最后編輯于 :
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者