shell脚本学习入门

#!/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"

 

 

 

你可能感兴趣的:(linux,sh)