1、設(shè)計(jì)一個(gè)程序cuts,它由標(biāo)準(zhǔn)輸入讀取數(shù)據(jù),獲取有第一個(gè)參數(shù)n和第二個(gè)參數(shù)m所限定范圍的數(shù)據(jù),n和m都是整數(shù),即從輸入的字符串中抽取第n個(gè)字符至第m個(gè)字符之間的所有字符(包括這兩個(gè)字符)并顯示出來。
$ cuts 11 14
This is a test of cuts program(回車)
test(顯示結(jié)果)
#!/bin/bash 它的作用就是告訴shell,里面的腳本使用那種解析器來執(zhí)行的腳本cut是以每一行為一個(gè)處理對(duì)象的, 字符(characters),用選項(xiàng)-c,中文字符和空格都算一個(gè)字符
2、利用for循環(huán)將當(dāng)前目錄下的.c文件移到指定的目錄下,并按文件大小排序,顯示移動(dòng)后指定目錄的內(nèi)容。
#!/bin/bash
for file in `ls|grep “.*.c”` 要用到ESC 下面的符號(hào)
{
mv -i $file./a -i是文件移動(dòng)同文件名會(huì)有提示
}
ls –lS ./a -S是按大小排序
3、編寫一個(gè)shell腳本,求斐波那契奇數(shù)列的前10項(xiàng)及總和。
#!/bin/bash
i=1
j=0
sum=0
for(( k=0; k<10; k++ ))
do
echo –n “$i,” -n不能再最后換行 echo輸出流
let sum+=I let 是linux的整數(shù)運(yùn)算命令
let m=i
let i+=j
let j=m
done
echo “sum=$sum”
4、編寫一個(gè)shell腳本,程序運(yùn)行時(shí),要求輸入兩個(gè)數(shù)字。然后判斷數(shù)字的大小,如果兩個(gè)數(shù)字的和大于100,就輸出“x+y>100”;如果兩個(gè)數(shù)字的和小于等于100并且大于10,就輸出“x+y>10”;如果x>y,則求出x除以y的余數(shù)并輸出“x mod y = ?(把計(jì)算的值代替問號(hào))”,否則求出y除以x的余數(shù)并輸出“y mod x = ?”
#!/bin/bash
-gt:大于 -le:小于等于 如果上一條命令執(zhí)行后的結(jié)束代碼不是0則執(zhí)行下面的命令(then)
5、編寫一個(gè)shell腳本,并利用函數(shù)實(shí)現(xiàn)數(shù)列求和運(yùn)算。即主程序接受兩個(gè)數(shù)字,分別作為數(shù)列頭和數(shù)列尾,如果第一個(gè)數(shù)字不小于第二個(gè)數(shù)字則輸出“wrong number”,否則將這兩個(gè)數(shù)字傳遞給函數(shù);函數(shù)把這兩個(gè)數(shù)字中間的數(shù)字加起來求和,并輸出。
如:當(dāng)輸入 3 6時(shí),函數(shù)計(jì)算 3+4+5+6的值并輸出。
Function shulie()是一個(gè)函數(shù),shulie $a $b 是傳遞參數(shù)給函數(shù)
6、編寫特洛伊木馬shell腳本。以文本方式登陸界面,接收用戶輸入的名字和密碼。一旦用戶在這種偽裝界面登陸,就獲取用戶名和密碼,并保存在指定的文件中。接著睡眠幾秒,然后顯示錄入錯(cuò)誤的信息,使用戶以為輸入有誤。最后在調(diào)用真正的登陸程序,允許用戶正常登陸。
7、編寫shell腳本,創(chuàng)建一個(gè)5個(gè)元素的數(shù)組,輸出各個(gè)元素的值
A是數(shù)組名,初始化A數(shù)組的值,以空格隔開
8、編寫一個(gè)腳本,用于統(tǒng)計(jì)所指定文件的行數(shù)總數(shù)。輸出結(jié)果為各個(gè)文件的名字+行數(shù),以及總行數(shù)。
如:當(dāng)輸入./腳本名 file1 file2,腳本計(jì)算file1和file2兩個(gè)文件的總行數(shù)
-l 是統(tǒng)計(jì)行數(shù)的參數(shù)
9、編寫一個(gè)shell腳本,根據(jù)鍵盤輸入的值,給出對(duì)應(yīng)的提示;輸入[A – Z ],輸出Uppercase Letter;輸入[a-z],輸出Lowercase Letter;輸入[0-9],輸出Digit;輸入其他,輸出Punctuation,whitespace, or other
Case要在每個(gè)條件末尾加;; esac
10、編寫shell腳本,提示用戶輸入用戶名,并判斷此用戶名是否存在與系統(tǒng)用戶中
grep "$name"/etc/passwd > /dev/null 2>&1
//探索與變量name內(nèi)相匹配的字符
不管結(jié)果是是否正確信息扔到/dev/null垃圾箱
2>&1不顯示任何信息操作信息
if [ $? -eq 0 ] ;then
//判斷$? 是否等于 0 $?里的數(shù)值跟你上一個(gè)命令執(zhí)行的成功與否有關(guān)
//如果你可以通過輸入一條命令進(jìn)行試驗(yàn)
然后通過
//pwd;echo $? $?結(jié)果為0
//asdfasdf;echo $?結(jié)果127
歡迎光臨 WDlinux官方論壇 (http://ahbydz.com/bbs/) | Powered by Discuz! 7.2 |