(1)变量的定义和引用
``:用来解析命令
$:解析变量
#!/bin/bash
PWD="`pwd`/include"
echo "PWD = $PWD"
PWD1='`pwd`/include'
echo "PWD1 = $PWD1"
单引号和双引号的区别
(1)shell中使用字符串可以不加双引号,直接使用。而且有空 格时也可以,但是缺陷是不能输出"或者其他转义字符。
(2)shell中也可以使用单引号来表示字符串,也是直接使用的,不能输出转义字符。
(3)单引号中:完全字面替换(不可包含单引号本身)
(4)双引号中:
$加变量名可以取变量的值
反引号仍表示命令替换
\$表示$的字面值 输出$符号
\`表示`的字面值
"表示"的字面值
\\表示\的字面值
(2)在当前文件创建文件和文件夹
#!/bin/sh 解释器的路径
mkdir a 创建文件夹
touch a.c 创建文件
(3)shell的分支结构
-f:判断文件
-d:判断目录
-eq:等于
if [ 12 -eq 12 ]; then
echo “equal”
else
echo “not equal”
fi
-gt:大于
if [ 13 -gt 12 ]; then
echo “great than”
else
echo “not great than”
fi
-lt:小于
if [ 13 -lt 12 ]; then
echo “less than”
else
echo “not less than”
fi
ge:大于或等于
-le:小于或等于
(与)上面三个相似
-z:空
str=" "
if [ -z $str ]; then
echo “yes”
else
echo “no”
fi
-o:或
#!bin/bash
if [ 13 -eq 13 -o “123” = “123” ]; then
echo “yes”
else
echo “no”
fi
&&:与
//:或
#!/bin/bash
str=" "
[ -z $str ] || echo “fei kong” #[ -z $str ]为假执行 “fei kong”
[ -z $str ] && echo “kong” #[ -z $str ]为真执行 echo “kong”
(4)for循环结构
#!/bin/bash
#循环打印123456
for i in 1 2 3 4 5 6
do
echo $i
done
#循环打印当前目录文件
for i in ls
do
echo $i
done
(5)while循环
#!/bin/bash
#循环打印1到8
i=1
j=9
while [ $i -lt $j ]
do
echo
i
i
=
i i=
ii=(($i+1))
done
(6)echo 创建文件和添加内容
创建test.test文件和添加test内容
echo “test” > test.test
将1234564665添加到 test.test文件中
echo “1234564665” >> test.test
(7)case语句
#!/bin/bash
#执行会打印1
var=1
case $var in
- echo “1” ;;
- echo “2” ;;
esac
(8)shell传参
#!/bin/bash
echo $# $1 # 打印传参的个数和参数
shift; #参数向左移一位
echo $# $1 # 打印传参的个数和参数
$#:参数个数
shift:所传的参数向左移一位