shell入门基础 以及 简单命令
赋予权限: [root@gh04 shell]# chmod u+x ./variable.shshell : 1.编程语言 2.可以执行的文件 3.文件内容:就是linux命令组成在一起的 一、入门: shell脚本: xxx.sh
1.编写脚本 vim wc.sh 2.赋予脚本权限 chmod 744 wc.sh 3.执行脚本 #!/bin/bash =》 编写 =》 bin/bash执行器 bash sh xx.sh 1.1编写脚本 vim wc.sh 2.1执行脚本 sh xx.sh
执行脚本: 1.赋予权限 ./xx.sh 【绝对路径、相对路径】 sh xx.sh 【绝对路径、相对路径】 2.没有赋予权限 sh xx.sh 二、变量与引用 1.变量
[root@gh04 shell]# cat variable.sh name="zuoshao" dt="date" dt1=`date` echo $name echo $dt echo $dt1
赋予权限: [root@gh04 shell]# chmod u+x ./variable.sh
shell变量: shell里面变量类型默认只有一种 string 1.定义 : k=v 2.分类: 1.静态变量 k=v k="v" k=v 2.动态变量 k=`v` v: 1.变量 2.系统命令 注意: 1.= 前后不能有空格 2.变量名字 都是大写 【规范】 3.定义变量的时候 建议使用 {} 2.引用: $xx ${xx}
三.传递参数
1. $n向脚本传递参数 1.n 代表一个数字
[root@gh04 shell]# cat parameter.sh echo "第一个参数:$1" echo "第二个参数:$2"
2.
[root@gh04 shell]# cat parameter.sh echo "文件名:$0" echo "第一个参数:$1"
echo "第二个参数:$2" echo "参数的个数:$#" echo "传递的参数作为一个字符串:$*" echo "脚本运行时候的pid为:$$"
3.元素带有空格 ""
[root@gh04 shell]# ./parameter.sh "wen jian"
文件名:./parameter.sh 第一个参数:wen jian 第二个参数: 参数的个数:1 传递的参数作为一个字符串:zuo shao 脚本运行时候的pid为:5731
4.数组 语法格式: arr=(v1 v2 v3)
[root@gh04 shell]# cat arr.sh
arr_name=(wenjian wenjian1 wenjian2)
echo "数组所有元素:${arr_name[@]}"
echo "第二个元素:${arr_name[1]}"
echo "数组的大小:${#arr_name[@]}"
5. 流程控制 5.1 if else 语法格式
if contdition ;then cmd ; else cmd; fi
contdition: [ 条件表达式 ]
1、值判断 数值类型和字符串 = == 数值类型 -lt less 小于 -le less equals 小于等于 -gt 大于 -ge 大于等于 -ne 不等于
案例:
[root@gh04 shell]# cat if.sh
name1="wenjian1"
name2="wenjian2"
if [ ${name1} == ${name2} ];then
echo "${name1} == ${name2}"
else
echo "${name1} != ${name2}"
fi
思考: shell 里面能不能debug? 可以 1.直接执行 ./if.sh 2.debug模式 1.常用 sh -x ./if.sh 2.脚本里面 ( 代买第一行手动写入)#!/bin/bash -x
5.2 for while 循环
for: 语法格式: for xx in arr do cmd; done
[root@gh04 shell]# cat forwhile.sh
for x in 1 2 3 4 5
do
echo $x
done
for((i=1;i<=10;i++));
do
echo ${i}
done
while: while(条件) do cmd; done案例:
[root@gh04 shell]# cat forwhile.sh
for x in 1 2 3 4 5
do
echo $x
done
echo "------------"
for((i=1;i<=10;i++));
do
echo ${i}
done
echo "------------"
a=0
while(($a <=5))
do
echo "$a"
let a++;
done
