SHELL快速入门

env查看环境变量
printenv 打印环境变量。
dinner='dfd'设置一个变量,注意设置的时候,后面不要有空格之类的符号
set |grep 'dinner' 查看变量(全局),如果是环境变量就用set
export dinner 把本地变量dinner变成环境变量
unset dinner 删除环境变量
echo $dinner 取变量需要加$

*匹配0或者多个字符
? 匹配一个任意字符
[若干个字符] 匹配括号中任意一个字符
DATE=$(date) |  =`date` 引用命令
echo $(($var+3))计算
touch -- -ti.sh 创建-ti.sh文件
echo "$DATE"会展开DATE命令结果
echo '$DATE'不会展开DATE命令结果
var=5 test $var -gt 3 |[$var -gt 3]   echo $? 测试var是否大于5 注意真为0,假为1
eq等于 ne不等于 lt小于 le小于等于i gt大于 ge大于等于
!逻辑非 -a逻辑与 -o逻辑或
if ;then ;fi 如果条件是真,就执行   then if then else then fi (加不加缩进没有严格要求)
if : ;then echo ;fi        shell中:控制符表示不执行任何操作,但是if:返回值总是真,所以执行zhen
小事例:
#!/bin/sh
echo "Is it morining? yes or no?"
read YES_OR_NO
if [ "$YES_OR_NO"="yes" ];then
   echo "good morning"
elif [ "$YES_OR_NO"="NO" ];then
   echo "good day"
else
   echo "your answer is wrong"
   exit 1
fi
   exit 0
case 在那些情况下:
#!/bin/sh
echo "Is it morining? yes or no?"
read YES_OR_NO
case "$YES_OR_NO" in
[Yy][Ee][Ss])
    echo "yes";;
*)
    echo "no";;
esac
注意;;表示结束或者一种情况的结束

循环
for ;do ;done
eg:
#!/bin/sh
for FRUIT in applee pear banana;do
   echo "I like $FRUIT"
done
while/do/done
eg:
echo "Enter password:"
read=KEY
whle [ "$KEY"!="sercet" ];do
    echo "Sorry"
    read TRY
done

echo -e 解析转义字符,如/t
echo -n 输出不换行
ll | tee a.txt 就是会显示ll结果,并把结果保存到a.txt中去
a+  w+其中a+不会覆盖原文件
/dev/null  LINUX中的黑洞

 

#! /bin/sh
func(){
echo "你好"
echo $0
echo $1
echo $2
echo "hello"
}
echo "-------start"
func gongwei xujing
echo ""------end"
调用程序,直接写函数函数名,其中$0代表是函数本身,$1,2代表后面传入的参数

shell命令行参数
$0当前脚本文件名
$n传递脚本或函数的参数。n是数字
$#传递给脚本或函数的参数个数
$*传递给脚本或寒素的所有参数
$@传递给脚本或函数的所有参数。被“”包含,$@会把参数分开,一个一个拿出来。
$?上一条命令的退出状态,或函数的返回值
$$当前shell进程ID,对于shell脚本,就是这些脚本所有的进程ID

你可能感兴趣的:(Linux)