輸入指的是shell程式讀入輸出。
輸出指的是shell程式執行結果的處理。
輸出通常使用echo命令
eg:
echo
$str
echo
$str >file
echo
$str >>file
第二行》為覆蓋,第三行》為追加。
echo輸出內容使用格式控制字元
\c:輸出完畢不換行
\t:輸出後跳格相當於tab
\n:輸出後換行
read 命令讀取資訊
如果唯讀入乙個變數,會把所有輸入資訊賦給該變數,』enter』結束輸入。
如果輸入多個變數,用空格隔開,輸入時也用空格隔開。
讀取語句後新增》filename表示從檔案中提取資料,並賦給變數。
eg:
read var1
this cannot be repair.
echo
$var1
read var1 var2 var3
this cannot be repair.
echo
$var1
$var2
$var3
echo
$var1
echo
$var2
echo
$var3
簡單程式例項
eg:
#!/bin/bash
#read.sh
echo please enter your name:
read varl
echo hello $varl
檔案重定向
command 1為標準輸出,2*為標準輸出的錯誤*
command > filename 覆蓋該檔案內容
command >> filename 追加到該檔案內容
command 1 > filename 與沒有1相同
command > filename2>&1把標準輸出和標準錯誤一起重定向到乙個檔案中
command > filename2>>&1把標準輸出和標準錯誤一起追加到乙個檔案中
command 2> filename把標準輸出的錯誤重定向到乙個檔案中
command2 >> filename把標準輸出的錯誤追加到另乙個檔案中
command < filename > filename2輸入資訊來自filename,輸出資訊指向filaname2
command < filename 把command命令以filename作為標準輸入
eg:
ls > ls.out
ll > ls.out
ls ne 2> ls.error
ll ne 2>>ls.error
cat < ls.error
vi q.sh
*.sh
zzll .sh> list.out
read varl .sh
echo .sh
...
引號的使用
雙引號表示引用乙個字串,字串中特殊符號依舊作用。
單引號中特殊符號忽略只顯示特殊符號。
反引號用於執行引號中的系統命令。
反斜線用於轉義。
eg:
var1=1000
echo
"hello linux $var1"
echo
'hello linux $var1'
單引號內部可以套雙引號,雙引號內部使用雙引號需要使用單斜線轉義。同樣單引號內部再次使用單引號也需要使用單斜號進行轉義。
eg:
echo
"hello "linux""
echo
"hello \"linux\""
echo
'hello "linux"'
echo
'hello \'linux\''
echo
'hello 'linux''
反引號的使用
使用反引號用於執行系統命令
eg:
var1=`expr 1 + 1`
echo
$var1
var2=`expr 1+1`
echo
$var2
需要注意的是算術運算數字和符號之間需要使用空格隔開,否則輸出則為算式而非結果
測試語句
測試,指對變數的大小、字串、檔案屬性等內容進行判斷。
test命令可用於字串、數字、檔案狀態等內容的測試。
返回0表示測試成功,返回1表示測試失敗。
-d 測試檔案是否是目錄檔案
-f 測試檔案是否是正規檔案
-l 測試檔案是否是符號連線
-x 測試檔案是否可執行
-s 測試檔案是否非空
-w 測試是否可寫
-u 測試檔案是否有suid位設定
-r 測試檔案是否可讀
數值測試
指的是比較兩個數值的大小或相等關係
1。test 第乙個運算元 第二個運算元
2。[第乙個運算元 數值比較符 第二個運算元]
數值比較符
-eq 兩數是否相等
-ne 兩數是否不相等
-le 第乙個數是否不大於第二個數
-ge 第乙個數是否不小於第二個數
-gt 第乙個數是否大於第二個數
-lt 第乙個數是否小於第二個數
邏輯測試
指的是將多個條件進行邏輯運算
-a 邏輯與
-o 邏輯或
! 邏輯否
字串測試
指的是比較兩個字串是否相等,或者判斷乙個字串是否為空
test 字串比較符 字串
test 字串1 字串比較符 字串2
[字串比較符 字串]
[字串1 字串比較符 字串2]
= 測試是否相等
!= 測試是否不相等
-z 測試是否空字串
-n 測試是否非空字串
流程控制結構
使用邏輯判斷,針對結果執行不同語句
順序結構
分支結構
迴圈結構
if 條件
then 命令1
fiif 條件
then 命令1
else 命令2
fiif 條件1
then 命令1
elif 條件2
then 命令2
else 命令3
fiif 條件1 ;then 命令1
elif 條件2 ;then 命令2
else 命令3
fi
流程控制結構
eg:
#!/bin/bash
#!judge.sh
i=$[ $1 % 2]
if test $i
-eq0;then
echo oushu
else
echo jishu
fi
#!/bin/bash
#test.sh
if test -z $1
then
echo
"please input a filename"
else
if test -w $1
then
echo
"writeable"
else
echo
"unwriteable"
fiif test -x $1
then
echo
"excuteable"
else
echo
"unexcutable"
fifi
for語句使用方法
for 變數名 in 列表
do 命令1
命令2...done
列表是乙個使用空格分割取值的乙個列表,每一次迴圈變數的取值依次從列表中索取。
eg:
#!/bin/bash
#for.sh
for char in a b c d f
doecho
$char
done
until迴圈
until 條件
do 命令1
命令2...done
eg:
#!/bin/bash
#sumup.sh
sum=0
i=1until [ i -gt
100 ]
do sum=$[ $sum + $i ]
i=$[ $i + 1 ]
done
echo
$sum
啊啊啊啊啊。。。累得快死。。。這一段適應真不容易,多敲**慢慢能不出錯就好 檔案輸入和輸出流
在常用的三種流中處理檔案的分別是 iftream,ofstream,fstream ifstream 表示可以讀取的檔案流 ofstream 表示可以寫入的檔案輸出流 fstream 表示可以進行讀寫操作的檔案流 1 如何讀取乙個檔案?在c 中讀取檔案要使用iostream標頭檔案,具體實現 1 必...
C 輸入和輸出流
一 i o流的概念和流類庫的結構 1 i o流的概念和流類庫的結構 1 標準裝置的輸入和輸出。即從鍵盤輸入資料,輸出到顯示器螢幕。標準輸入輸出 2 標準裝置的輸入和輸出。即從鍵盤輸入資料,輸出到顯示器螢幕。標準輸入輸出 3 記憶體中指定的空間進行輸入和輸出,稱為字串輸入輸出,簡稱串i o 2 標準輸...
流和輸入輸出
參考 1 openfiledialogue類 命名空間 system.windows.forms 作用 顯示標準的windows 開啟 對話方塊。current thread must be set to single thread apartment sta mode before ole 原因很...