shell簡單程式設計

2021-07-13 07:49:58 字數 2052 閱讀 5675

$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...