1、./文件名
2、sh 文件名
3、#source 文件名
#!/bin/sh //必须要带上这个 shell 声明
A="hello" // 这里不能 A = "hello" , 带有空格的话会识别错误
echo "A is"
echo $A
Linux :\n 为回车换行
windows : \r\n 为回车换行
ll | grep "s" // 通过管道 | ,查看 ll 下 含有 s 的内容
#!/bin/sh
echo $0
echo $#
echo $1
echo $2
echo $3
#!/bin/sh
A=10
echo $A // 先打印 A =10 值
read A //从键盘读入数据
echo $A
#!/bin/sh
if test -f a.sh #如果成立就执行then
then #一定要加
echo "sucess"
else
echo "failed"
fi #一定要加结束符号
#!/bin/sh
if [ -f a.sh ] // 格式 [ ] 左右两边都要一个空格
then
echo "yes"
else
echo "no"
fi
使用[ ]时,必须要在 [符号和被检查的条件之间留出空格,可以把符号看作和test样,test和后面的条件之间总是有一个空格。
代码最后不要忘了写 fi 来结束这个判断
#!/bin/sh
echo "please scanf you data,answr is yes or no"
read data
if [ $data = "yes" ]
then
echo "good"
else
echo "Fuck"
fi
#!/bin/sh
if [ 10 -lt 2 ] //如果 10 小于 2 ,才打印 good
then
echo "good"
elif [ 10 -gt 5 ] // 如果 10 大于5 ,打印 well
then
echo "well"
else
echo "NO"
fi
#!/bin/sh
if [ 3 -eq 4 ]
then
echo "yes"
else
echo "no"
fi
#!/bin/sh
if [ -d b.txt ]
then
echo "yes"
else
echo "no"
fi
#!/bin/sh
echo "please input data"
for data in 1 2 3
do
echo $data
done
#!/bin/sh
echo "input data"
#data=1
read data //从键盘输入data
while [ $data != 6 ] // 从键盘 输入data ,判断data 是否不等于 6
do
echo "again"
echo $data
data=$(($data+1)) // data 依次相加 ,类似于C 语言中 data++
done //循环必带 结束符
exit 0
#!/bin/sh
echo "input data"
data=5
until [ $data -le 6 ]
do
echo $data
data=$(($data+1))
done
echo "跳出循环"
exit 0
#!/bin/sh
echo "请输入数据"
read data
case "$data" in
yes) echo "good";; #注意一定要两个 ;; 结尾
y) echo "nice";;
no) echo "fuck";;
n) echo "shift";;
esac # 选择语句必带
exit 0
#!/bin/sh
foo() // 函数名字 + ()
{
echo $0 # 打印文件名字
echo $1 # 打印第一个参数
echo $2 # 打印第二个参数
}
echo $0 $1 $2
foo $1 $2 # 这里要给foo 函数 传参数 才会打印 $1 、$2
#!/bin/sh
A="good"
foo()
{
local A="nice"
echo $A
}
echo "局部变量local作用:"
foo
echo "全局变量:"
echo $A
exit 0
#!/bin/sh
fun()
{
while :
do
echo "gg"
done
}
fun
exit 0
#!/bin/sh
A=10
B=15
while [ $A -ne $B ]
do
A=$(($A+1))
if [ $A -eq "12" ] # 当 A = 12时 跳出循环
then
echo "good"
break; # 这个 ; 可加可不加
fi
done
exit 0
#!/bin/sh
yes_or_no()
{
echo "is your name $*?"
while true
do
echo "please enter yes or no"
read a
case "$a" in
y|yes) return 0;; # 在shell脚本,0表示返回成功,相当于 c语言的 1
n|no) return 1;;
* ) echo "error"
esac
done
}
echo "original parameters are $*"
if yes_or_no "$A" # shell脚本编程中,注意:Linux中返回0表示成功
then # $A 用一个变量 A 来存放返回值,用其他字符也可以
echo "hi"
else
echo "never mind"
fi
exit 0
#!/bin/sh
rm -rf fred*
echo > fred1
echo > fred2
mkdir fred3
echo > fred4
for file in fred*
do
if [ -d "$file" ]
then
echo skipping the directory $file
continue
fi
done
echo first direcyory starting fred was $file
rm -rf fred*
将当前的shell替换为一一个不同的程序
exec wall"hello world"
将当前的shell替换为执行wall,exec后面的语句都不会执行了,因为当前的shell已经不复存在了
#!/bin/sh
echo "lulu"
exec echo "hengheng"
echo "aa"
echo "bb"