這是我在學習指令碼時產生的疑惑,我總結了一下,希望對大家有用
指令碼第一行#!/bin/bash
或#! /bin/sh
,指出由哪個直譯器來執行指令碼中的內容
if
[ …… ]
then
echo
"……"
elif[……]
echo
"……"
else
echo
"……"
fi
語句中要使用elif,不能使用esle if
if語句要用fi結束
經常可以看到if
[ …… ]
then
echo
"……"
else
echo
"……"
if或者
if[ …… ]
;then
echo
"……"
else
echo
"……"
if
為什麼分號有的使用,有的不使用?分號有什麼用?
分號在shell中不是語句的結束符。
分號是用來區分一行語句中的多個**塊,如果一行語句存在多個**塊,而不使用分號分隔,例如if[ …… ] then
那麼執行就會報錯,如果一行只有乙個**塊,那麼就不需要分號了。
有時複製別人shell語句後執行指令碼,會報出錯,但是這個命令你明明知道它是存在的,但指令碼就是在報錯。
這是因為在複製過程**現了不可見的未知字元,使用cat -a ***.sh
檢視指令碼會發現這些字元。
將這些字元刪掉就可以正常執行了
>表示重定向
1表示標準輸出,系統預設為1,所以1可以省略,>/dev/null 和 1>/dev/null 等價
2表示錯誤輸出
/dev/null表示乙個空裝置,是乙個「黑洞」,通常被用於丟棄不需要的輸出流,輸出到這裡的輸出流將不會顯示任何資訊
&表示等同,2>&1就表示錯誤輸出的重定向輸出裝置等同於標準輸出
1>/dev/null 2>&1表示不顯示任何的資訊在指令碼執行中,系統也會正常輸出本身的錯誤資訊,和指令碼執行結果混在一起,顯的十分混亂,所以通常會捨棄掉系統的資訊。
:在shell指令碼中表示空語句,只是起到乙個佔位符的作用
if[$1
-eq"a"
]then
:else
:fi
$# :位置引數的數量
$0 :當前執行的程序名
$1 :第乙個位置引數
$2 :第二個位置引數
……$* :所有的位置引數
$$ :當前程序的程序號
一般在shell程式設計中,-eq 等用於整數的比較,= 等用於字串的比較
整數字串
-eq==
-ne!=
-gt>
-ge>=
-lt<
-le<=
case $1 in
a)echo
"您選擇了a";;
b)echo
"您選擇了b";;
*)echo
"您未選擇a和b"
esac
for
((i=10;i>0;i--))
doecho
"倒計時$i"
done
個人版室收費系統總結
用了乙個月的時間,成品個人版的房費制度的重構,不是對心臟的總結是有點放心。首先說說一年前第一次敲機房收費系統的事兒,那是純面向過程,能實現功能就能夠。當初完畢了這個系統。可謂是在提高班學習中的又乙個里程碑,純手工製作。精心打造。我們學會了分析業務流程,消化吸收vb和資料庫的學習成果,提高對 的親和力...
機房收費系統個人版重構總結
10號進行了第二次驗收,這次驗收成長了不少,大致的看了一下,這次的重構用了將近四十天的時間,實在感覺前段時間效率太低,著急的晚上也弄,整了半天,還是沒有多大進展,如果沒有想法,沒有思路,加班也是做無用功 因為第二天還得返工 從這次重構中,自己學到了很多。一開始自己敲的都是查詢窗體,由於自己一開始用的...
打造個人版錄影工具
請注意 該動畫內如含廣告與本站無任何關係,為作者個人宣傳,網路交易風險自負 動畫名稱 修改錄製工具 主題 打造個人版錄製工具 講師 小帥 qq752081382 工具 1.reshacker 2.s player 我會打包!用reshacker 開啟 s player.exe 找一下我們所需要改的文...