1、前提
使用shell腳本可以將所要執(zhí)行的命令行進(jìn)行匯總,統(tǒng)一執(zhí)行,制作為腳本工具,簡(jiǎn)化重復(fù)性工作
1.1、常用命令
1.1.1、啟動(dòng)命令
假設(shè)我們擁有一個(gè)halloWord.sh的腳本,通過(guò)cd 命令進(jìn)入相對(duì)應(yīng)的目錄下
./halloWord.sh
1.1.2、記錄日志
將腳本執(zhí)行的內(nèi)容以及輸出記錄在log.txt文件中,同時(shí)也控制臺(tái)顯示器也要輸出一份,可以在腳本開(kāi)始處添加以下代碼
# -a 后的$(date +%Y-%m-%d_%H:%M:%S)_log.txt為log.txt名稱(chēng)
# (date +%Y-%m-%d_%H:%M:%S)為當(dāng)前時(shí)間 防止log文件重名
exec &> >(tee -a $(date +%Y-%m-%d_%H:%M:%S)_log.txt)
1.1.3、設(shè)置變量以及輸出內(nèi)容
#控制臺(tái)將輸出內(nèi)容為 "127.0.0.1"的字符串
DB_HOST="127.0.0.1"
echo $DB_HOST
1.1.4、創(chuàng)建文件夾
#在/opt下創(chuàng)建Back文件夾
mkdir /opt/Back
1.1.5、拷貝文件夾、文件
選項(xiàng):
-r:遞歸復(fù)制目錄及其內(nèi)容。與-R選項(xiàng)相同。
-p:保持源文件的權(quán)限、所有者和時(shí)間戳等屬性。
-i:在復(fù)制時(shí)進(jìn)行交互式確認(rèn),如果目標(biāo)文件已經(jīng)存在,則提示是否覆蓋。
-f:強(qiáng)制復(fù)制,不進(jìn)行任何提示或警告。
-u:只復(fù)制源文件比目標(biāo)文件更新的文件。
-v:顯示詳細(xì)的復(fù)制過(guò)程信息。
#cp [選項(xiàng)] 源文件 目標(biāo)文件
#將opt目錄下的log.txt文件,拷貝至opt的Back目錄下
#相同原理,也可以拷貝文件夾
cp -R /opt/log.txt /opt/Back
1.1.6、校驗(yàn)?zāi)夸浕蛭募A是否存在
if [ -f "/opt" ]; then
echo "opt目錄存在"
else
echo "opt目錄不存在"
fi
1.1.7、輸入英語(yǔ)字符并轉(zhuǎn)換為小寫(xiě)字符
echo "是否要校驗(yàn)opt目錄是否存在?(y/n)"
read answer
answer=$(echo "$answer" | tr '[:upper:]' '[:lower:]')
if [ "$answer" = "y" ]; then
echo "opt目錄存在"
else
echo "opt目錄不存在"
fi
1.1.8、中途停止腳本的執(zhí)行
#使用 exit 1進(jìn)行停止
#exit 1 是一個(gè)Shell命令,用于在腳本中退出并返回一個(gè)非零的退出狀態(tài)。
#它通常用于指示腳本或命令在執(zhí)行過(guò)程中發(fā)生了錯(cuò)誤或異常。
#當(dāng)執(zhí)行exit 1時(shí),腳本將立即終止,
echo "是否要校驗(yàn)opt目錄是否存在?(y/n)"
read answer
answer=$(echo "$answer" | tr '[:upper:]' '[:lower:]')
if [ "$answer" = "y" ]; then
echo "opt目錄存在"
else
echo "opt目錄不存在"
echo "操作已取消"
exit 1
fi
1.1.9、腳本發(fā)生錯(cuò)誤,停止腳本命令
#set -eu是一個(gè)bash命令,它可以設(shè)置shell的選項(xiàng)和變量。set -eu的意思是:
#1、set -e表示如果一個(gè)命令或者管道出現(xiàn)非零的退出狀態(tài),就讓shell退出。
#2、set -u表示如果一個(gè)變量沒(méi)有定義,就讓shell退出
#3、這兩個(gè)選項(xiàng)可以幫助你在腳本中發(fā)現(xiàn)錯(cuò)誤和異常
set -eu
1.1.10、將文本內(nèi)容更換為UTF-8格式
定義兩個(gè)變量,分別為需要源文件路徑,以及目標(biāo)文件路徑
#將opt目錄下的log.txt更換為UTF-8格式
TXT_FILE="/opt/log.txt"
TXT_FILE_UTF="/opt/log_UTF-8.txt"
iconv -f GBK -t UTF-8 $TXT_FILE > $TXT_FILE_UTF
也可以不使用變量的方式
#將opt目錄下的log.txt更換為UTF-8格式
iconv -f GBK -t UTF-8 "/opt/log.txt" > "/opt/log_UTF-8.txt"
2、注意事項(xiàng)
2.1、書(shū)寫(xiě)格式
.sh文件的第一行必須為:#!/bin/bash
例如:
2.2、權(quán)限問(wèn)題
第一次調(diào)用.sh腳本是時(shí)可能會(huì)出現(xiàn)權(quán)限不足的問(wèn)題文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-638204.html
#腳本賦予可執(zhí)行權(quán)限
chmod u+x /opt/XXX.sh
2.3、編寫(xiě)的格式問(wèn)題
winodw編寫(xiě)可以使用編輯器(如NotePad++),保存格式為unix,否則會(huì)出現(xiàn)不可見(jiàn)的符號(hào),導(dǎo)致命令行報(bào)錯(cuò),腳本無(wú)法使用文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-638204.html
到了這里,關(guān)于Linux的shell腳本常用命令的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!