#!/bin/sh
a="hello world"
echo "A is:"
echo $a
#打印参数的技巧
num=2
#不能识别$numnd变量
echo "this is the $numnd"
echo "this is the $num"
echo "this is the ${num}nd"
#由export关键字处理过的变量叫做环境变量。
#每行第一个到第二个字符,每行从1开始计数
#cut -b colnum file:
cut -b 1-2 hb.sh
#计算文件行数
wc -l hb.sh
#计算文件的单词数
wc -w hb.sh
#计算文件的字符数
wc -c hb.sh
#管道 (|) 将一个命令的输出作为另外一个命令的输入
#查询a.txt文件中的字符串tomcat,并计数显示
grep "tomcat" a.txt|wc -l >> abc.txt
#if要和中括号之间有空格
if [ "$SHELL" = "/bin/bash" ]; then
echo "your login shell is the bash"
else
echo "your login shell is not bash but SHELL"
fi
# 这里 && 就是一个快捷操作符,如果左边的表达式为真则执行右边的语句
# -f "/etc/shadow" 判断这个文件(不是文件夹)是否存在,注意中括号两边是空格,不能连着写,否则不被识别
[ -f "/etc/shadow" ] && echo "This computer uses shadow passwors"
#注意这里的空格很重要。要确保方括号和条件之间的空格。
# -d参数判断文件夹(路径)是否存在
[ -d "/tmp/hb" ] && echo "/tmp/hb is exist"
for var in A B C ; do
echo "var is $var"
done
#注意:是用两个括号。
for (( i = 0; i < 10; i++)); do
echo $i;
done
echo "what is your favourite OS?"
select var in "linux" "Gnu Hurd" "Free BSD" "Other";do
break
done
echo "you have selected $var"
#选择不同的参数走不同的流程
#temp="hb"
#temp=""
temp="cc"
temp2=""
#if要和中括号之间有空格,等号两端要有空格
#每个if完结之后要有一个fi结尾
if [ "$temp" = "hb" ];then
echo "temp is $temp"
if [ "$temp2" = "" ];then
echo "temp2 is null"
fi
elif [ "$temp" = "cc" ];then
echo "temp is cc"
else
echo "temp is null"
fi
# -n 判断变量$temp是否有值
[ -n "$temp" ] && echo "temp have value"
[ ! -n "$cc" ] && echo "cc don't hava value"
# -x 判断文件是否为可执行文件
[ ! -x abc.txt ] && echo "abc.txt bu shi ke zhi xing wenjian"