另外一些混雜的shell資料

2021-08-30 05:07:40 字數 3383 閱讀 6939

#!/bin/bash

#輸入使用者的姓名,並且顯示出來

#2008/10/21

read -p "請輸入您的姓:" firstname

read -p "請輸入您的名字:" lastname

echo "您的姓名是:$firstname $lastname"

#!/bin/bash

#利用date建立檔案

#2008/10/21

#讓使用者輸入檔名稱,並獲取fileuser變數

echo -p "i will use 'touch' command to create 3 files"

read -p "please input file name what you want:" fileuser

#使用變數功能分析是否設定的檔名?

filename=$

#開始使用date命令來獲取所需要的檔名

date1=`date +%y%m%d`

file1="$filename""$date1"

touch $file1

數值運算的方法;var=$((運算內容))

test用法;test -e filename

-e :該檔名是否存在

-f:該檔名是否為檔案

-d:該檔名是否為目錄

-r:檢查該檔名是否可讀

-w:檢查該檔名是否可寫

-x:檢查該檔名是否可執行

-s:檢查該檔名是否為空白檔案

倆個整數的判斷:

-eq;兩數值相等

-ne:兩數值不相等

-gt:n1大於n2

-lt:n1小於n2

-ge:n1大於等於n2

-le:n1小於等於n2

test -z string 判斷字串是否為0,若為空字串,返回true

test -n string 若為空字串,返回false

test str1=str2

test str1!=str2

-a:(and)兩個條件同時成立

-o:兩個條件任何乙個成立

!:條件求反

例子:#!/bin/bash

#首先讓使用者輸入乙個檔名

#這個檔案是否存在?若不存在,則顯示"不存在",並且中斷程式

#若存在,則判斷是否是目錄?輸出"是檔案" "是目錄?"

#判斷執行者對這個檔案或者目錄的許可權

#2008/10/21

read -p "請輸入檔名:" filename

test -z $filename && echo "請輸入檔名"

test ! -e $filename && echo "檔案不存在" && exit 0

test -f $filename && filetype="是檔案"

test -d $filename && filetype="是目錄"

test -r $filename && perm="可讀"

test -w $filename && perm="$perm 可寫"

test -x $filename && perm="$perm 可執行"

echo "檔案:$filename是:""$filetype"

echo "使用者的許可權是: $perm"

條件判斷符號

例子:[ "$home" == "$male" ]

注意要有空格

shell指令碼的預設的變數

例子:/sbin/shutdown -h now

$0 $1 $2

條件判斷:

#檢查輸入的引數是否為hello

#如果是,就顯示"hello, how are you?"

#如果沒有加入任何引數,就提示必須輸入引數

#若不是hello,提示僅使用hello作為引數

if [ "$1" == "hello" ]; then

echo "hello,how are you?"

elif [ "$1" == "" ]; then

echo "you must input parameter!"

else

echo "you must input hello"

fi#判斷引數是否為hello

case $1 in

"hello")

echo "hello, how are you?"

;;"")

echo "you must input parameters!"

;;*)

echo "you must input hello"

;;esac

#函式體中的$1指的是函式後面跟著的引數

function println()

case $1(命令中的引數) in

"one")

println 1

;;"two")

println 2

;;*)

echo "hehhehehhe"

;;esac

while[ "$yn" != "yes" ] && [ "$yn" != "yes" ]

doread -p "please input yes/no to stop this programe:" yn

done

s=0for(( i=1; i<=100; i=i+1 ))

dos=$(($s+$i))

done

echo "the result '1+2+...+100='$s"

for animal in dog cat elephant

doecho "there are $animal""s"

done

#找出目錄內的檔名的許可權

read -p "please input a dirctory :"dir

if[ "$dir" == "" ] || [ ! -d "$dir" ] ; then

echo "the $dir id not exsit in your system!"

exit 1

fifilelist=`ls $dir`

for filename in $filelist

doperm=""

test -r "$dir/$filename" && perm="可讀"

test -w "$dir/$filename" && perm="$perm 可寫"

test -x "$dir/$filename" && perm="$perm 可執行"

echo "the file $filename's permission is $perm"

done

shell指令碼的除錯

sh -n sh01.sh 檢查語法

sh -x sh01.sh 將使用的指令碼內容顯示在螢幕上,很有用

shell的一些筆記

如何使用基於ssh的scp遠端複製檔案?如何利用python傳?scp home amazing felix.tar.gz root 遠端ip home dsp python傳 pytyon m httpserver 8085 wget 如何檢視本機外網ip?curl ident.me 返回ip和地...

shell的一些符號

string string command 輸入輸出重導向 2 2 2 井號 comments 這幾乎是個滿場都有的符號。bin bash 井號也常出現在一行的開頭,或者位於完整指令之後,這類情況表示符號後面的是註解文字,不會被執行。this line is comments.echo a a a ...

一些shell符號

傳遞到指令碼的引數個數 以乙個單字串顯示所有向指令碼傳遞的引數,與位置變數不同,此選項引數可超過9個 指令碼執行的當前程序id號 後台執行的最後乙個程序的程序id號 與 相同,但是使用時加引號,並在引號中返回每個引數 顯示shell使用的當前選項,與set命令功能相同 顯示最後命令的退出狀態。0表示...