bash编程笔记
2016-02-20 本文已影响46人
李晓同学
bash编程笔记
为了能提高linux系统下的工作效率,今天打算认识下bash编程
把今天学过的例子堆过来,加上简单地注释,方便以后查阅
-
初识bash
#!/bin/bash #表示这是个bash文件,需要用到/bin/bash程序来解释执行
#This is a simple bash script
a="同学你好"
echo "A is:"
echo ${a}啊
grep "hello" file.txt | wc -l #将第一个命令的输出作为第二个命令的输入
tar -zcvf lastmod.tar.gz `find . -mtime -1 -type f -print` #将find的结果作为tar的参数 注意:是反短斜线`
-
bash中的 Test 运算符
#判断文件是否存在
if [ -e myfile ]; then
echo myfile exits
else
touch myfile
echo myfile created
fi
#判断文件是否相同
echo 1 >file1
echo 2 >file2
if ! diff -q file1 file2; then
echo file1 file2 diff
else
echo file1 file2 same
fi
#判断字符串非空
str1="ss"
if [ ! -z "$str1" ]; then
echo str1 is not empty
else
echo str1 is empty
fi
-
或运算和与运算
#或运算符的使用(前半部分为真时执行后半部分)
mailfolder=/var/spool/mail/james
[ -r "$mailfolder" ]||{ echo "Can not read $mailfolder" ; exit 1 ; }
echo "$mailfolder has mail from:"
grep "^From " $mailfolder
#与运算符(前半部分为假时执行后半部分)
[ -f "/etc/shadow" ] && echo "This computer uses shadow passwors"
-
case 的用法
#!/bin/bash
if [ -z $1 ];then
rental="*** Unknown vehicle ***"
elif [ -n $1 ];then
rental=$1
fi
case $rental in
"car") speed=100;;
"van") speed=50;;
"jeep") speed=70;;
"bicycle") speed=10;;
*) speed="unknow";;
esac
echo "$1 speed is $speed"
注意:上例中的$1是执行命令是传递的第一个参数.例如: ./bashname.sh car 则$1为"car"