shell脚本

Shell是命令解析器,将用户的指令转换为相应的机器能够运行的程序。

Shell脚本是一个包含一系列命令序列的文本文件。当运行这个脚本文件时,文件中包含的命令序列将得到执行。

ex1:脚本范例

#!/bin/sh
#echo something
echo "hello world"
mkdir /tnt

注意:

第一行:#!用来指定该脚本程序的解析程序,开头的第一行只能有这些:#!/bin/sh

第二行:注释,在进行shell编程是,以#开头的句子表示注释,直到这一行的结束。

ex2:变量的使用

shell编程中,所有的变量都是由字符串组成,并且不需要预先对变量进行声明。

#!/bin/sh
#set varible a
a="hello world"
#print a
echo "A is:"
echo $a

注意:变量的申明无需加$,但是再次引用时需加$,echo 命令会自动加上换行符,如果想要其解析转义字符"\n",需加-e选项。
比如:
#!/bin/sh
#set varible a
a="hello world\n"
#print a
echo -e "A is:\n"
echo -e $a

使用花括号来告诉shell我们要打印的是num变量

#!/bin/sh

#set variable num

Num=2

Echo “this is the ${num}nd”

ex3:默认变量的使用
$#:传入脚本的命令行参数的个数
$*:
所有命令行参数值
$0:
命令行本身(shell文件名)
$1:
第一个参数值
$2:
第二个参数值

#!/bin/sh
echo "number of vars:"$#
echo "values of vars:"$*
echo "value of var1:"$1
echo "value of var2:"$2
echo "value of var3:"$3
echo "value of var4:"$4

执行命令:# ./ex3 1 2 3 4
运行结果:
number of vars:4
values of vars:1 2 3 4
value of var1:1
value of var2:2
value of var3:3
value of var4:4

ex4:变量的声明
#!/bin/sh
#set varible num
num1=11111
echo "this is the ${num1}nd"
num2=2222
echo "this is the $num2nd"
运行结果:
this is the 11111nd
this is the

注意:对于没有事先声明的变量,echo输出值为空

ex5:全局与局部变量的使用

#!/bin/bash
hello="var1"
echo $hello
function func1
{
local hello="var2"
echo $hello
}
func1
echo $hello

输出结果:
var1
var2
var1

1. 变量赋值是,“=”左右两边都不能有空格

2. BASH中的语句结尾不需要分号

ex6:文件和目录的属性

#!/bin/sh
folder=/home/smb
[ -r "$folder" ] && echo "Can read $folder"
[ -f "$folder" ] || echo "this is not file"

输出结果:

Can read /home/smb

this is not file

ex7:循环
#!/bin/bash
for day in Sun Mon Tue Wed Thu Fri Sat #the first loop
do
echo $day
done
echo "**************"
for day in "Sun Mon Tue Wed Thu Fri Sat" #the second loop
do
echo $day
done

执行结果:
Sun
Mon
Tue
Wed
Thu
Fri
Sat
**************
Sun Mon Tue Wed Thu Fri Sat

注意:列表被双引号括起来会被认为是一个元素

ex8case的使用

使用格式:

case "$variable" in
"$condition1" )
command...
;;
"$condition2" )
command...
;;
esac

注意: 对变量使用""并不是强制的, 因为不会发生单词分割;每句测试行, 都以右小括号)来结尾;每个条件判断语句块都以一对分号结尾 ;;case块以esac (case的反向拼写)结尾.

示例如下:
#!/bin/bash
echo "Hit a key, then hit return."
read Keypress
echo "the leller you typed is $Keypress"
case "$Keypress" in
[a-z] ) echo "Lowercase letter";;
[A-Z] ) echo "Uppercase letter";;
[0-9] ) echo "Digit";;
* ) echo "Punctuation, whitespace, or other";;
esac

你可能感兴趣的:(编程,脚本,F#,bash,sun)