$0 表示shell檔案本身的檔名.
$1,$2,$3 指向每個引數
$#表示引數的個數
$*/$@表示所有引數的整體
$x 用於取變數x的值
$$ 程序id.
shift移動乙個引數。
':',相當於nop,是一條空命令,while[ true ] : --> 死迴圈.
';',用於在一行分隔命令,if[ condition ] ; then
export x=100 ;匯出乙個環境變數x.
命令替換:使用`a`或者$(a),將$(a)的操作結果,傳給下乙個呼叫者.
eg cat $(
ls) > merge // cat `ls` > merge
exit val ;結束當前指令碼並以val作為返回值.
$? ; 返回上一條命令的執行結果.
test 用於shell條件判斷,if test 2 -eq 2
//不需要
----用於測試檔案資訊是否正確-----
test -f fn ;fn是否為為檔案
test -d fn ;fn是否為資料夾
test -r/w/x ;當前使用者對該檔案是否有讀/寫/執行許可權
----value--------------
test "sfas" == "afds"
test "sf" -eq "afas"
test 12 -lt 13
&& 和 || 就是那個意思沒錯!!!!!
date
--> 日期
pwd --> 當前絕對工作路徑
let i=$x+$y,為整數操作賦值,所以必須有兩個以上運算元.當只有乙個運算元時使用,i=$x.
#!/bin/bash
echo
"please input num:"
read num
echo
"the num is $num"
#宣告變數,不能有空格
sum=0
i=0# while迴圈,需要留出空格
while [ $num
-gt$i ]
dolet mo=$i%2
# 開始條件需要留出空格
# then,else 要單獨留出空行
if [ $mo
-eq0 ]
then
3 賦值不能有空格
let sum=$sum+$i
elif [ $mo
-eq2 ]
then
echo
"ll"
else
touch $i
tar cvf - `find . -mtime -1 -type f -print` > x.tar
# 結束條件
filet i=$i+1
# 結束迴圈
done
echo
"the sum is $sum"
#!bin/bash
echo
"my student number is :1133710513, my name is zhiwei huang"
city[1]=beijing
city[2]=shanghai
city[3]=wuxi
city[4]=wenzhou
city[5]=berkeley
# for z in 1 2 7
for i in$do
echo
$idone
#!/bin/bash
echo
"my student number is :1133710513, my name is zhiwei huang"
i=0for ((k=0;k<10;k++))
dofor((j=0;j<=k;j++))
doecho -n "$j "
done
echo
" "done
Shell 簡單程式設計
bin bash sh1.sh name admin npass 123 loops 1 filename dlxxlog.log logins logins 使用者資訊匯入日誌 servermessage longen while loops lt 3 do if user name a pass...
幾個簡單的shell程式設計題
下面是幾個關於shell簡單的程式設計題目,算是熟悉一下shell吧 首先開啟我們的終端,然後進入我的共享檔案 cd mnt hgfs 看到在共享檔案下游乙個資料夾virtual 進入virtual 裡面有個資料夾test 檢視test裡面的目錄檔案發現裡面有一些檔案,我們的程式設計例子就是這些檔案...
Shell程式設計 shell特性
linux會預設記錄1000條歷史記錄,可通過 echo histsize 檢視,如果講histsize更改為2000,那麼會預設儲存2000條。1000條記錄儲存在家目錄的 bash history 中,僅當使用者正常退出當前shell時,當前shell中執行的命令才會儲存到 bash histo...