shell学习笔记

shell学习笔记
shell是类似bat批处理的一种基于文本行的程序
shell的特征是1.一般以xx.sh来命名
2.文本内首句一般是#!/bin/bash 或者是 #!/bin/sh
3.运行方法是 ./xx.sh 或 bash xx.sh 或 sh xx.sh
4.运行需要可执行的权限

shell的一些句法及命令

$target 或者 ${target} 能代表变量
$1,$2,$3,$4...分别代表第一个,第二个,第三个,第四个。。。参数
$# 代表参数个数
$@ 代表全部参数
$0 命令本身


echo在屏幕上回显字符串 -e 使诸如/n /a的转义形式的使能 默认是使不能的

read读用户的输入 如 read -p "prompt" targetname 其中-p是在屏幕上输出命令提示符的意思

date命令显示时间,但是正常情况下 它显示的格式不是你能控制的 所以你得加参数 诸如下面的格式
date --date='1 days ago'+%Y%m%d
加号后面的才是正常的格式
date命令用于管理非常有用

 

為了避免使用者隨意按 Enter ,利用變數功能分析檔名是否有設定?
filename=${fileuser:-"filename"} # 開始判斷有否設定檔名

关于方括号【】中的比较 其实是test是借助里test指令,链接位于
http://blog.csdn.net/idsunb/archive/2010/11/10/6001561.aspx

 

@@@1关于条件式
# 多個條件判斷 (if ... elif ... elif ... else) 分多種不同情況執行
if [ 條件判斷式一 ]; then
當條件判斷式一成立時,可以進行的指令工作內容;
elif [ 條件判斷式二 ]; then
當條件判斷式二成立時,可以進行的指令工作內容;
else
當條件判斷式一與二均不成立時,可以進行的指令工作內容;
fi

@@@2关于case
case $變數名稱 in <==關鍵字為 case ,還有變數前有錢字號
"第一個變數內容") <==每個變數內容建議用雙引號括起來,關鍵字則為小括號 )
程式段
;; <==每個類別結尾使用兩個連續的分號來處理!
"第二個變數內容")
程式段
;;
*) <==最後一個變數內容都會用 * 來代表所有其他值
不包含第一個變數內容與第二個變數內容的其他程式執行段
exit 1
;;
esac

@@@3fuction功能 function也能接受参数哦 和sh的接受参数的形式差不多

@@@4
while [ condition ] <==中括號內的狀態就是判斷式
do <==do 是迴圈的開始!
程式段落
done <==done 是迴圈的結束
上面是只要条件还符合就输出
until [ condition ]
do
程式段落
done
下面是条件符合了就不输出

统计目录下有多少文件
#!/bin/bash
count=1
for file in *
do
if [ -f "$file" ]
then count=$(($count+1))
fi
done
echo $count

 

 

这个是输入单词 然后把单词逆序输出的一个简单的示例程序
#!/bin/bash
zhengxu=""
fanxu=""
tempbit=""
#上面三个都是一些变量
read zhengxu
#读如
while [ ! -z "$zhengxu" ]
do
tempbit=$(expr substr $zhengxu $(expr length $zhengxu) 1)
#取最后一位
zhengxu=$(expr substr $zhengxu 1 $(expr length $zhengxu - 1))
#保留除去最后一位的前几位
fanxu="$fanxu$tempbit"
done
echo $fanxu
#打印出反序结果

 

sleep睡眠n秒

一种for的循环 数量可以控制 另 seq 1 100 等同于从1,2,3.。。。。100


for var in con1 con2 con3 ...
do
程式段
done

 

另一种for的循环
for (( 初始值; 限制值; 執行步階 ))
do
程式段
done

 

你可能感兴趣的:(工作,Date,shell,function,File,bash)