脚本的编写一般都是从#!\bin\sh开始的,编写完一个脚本后,想要要执行它,首先,要让脚本获得执行的权限,添加权限使用chmod命令,其格式为chmod [u/g/o/a] [+/-/=] [权限]filename。
例如:
脚本内容
#!/bin/sh
mkdir ~/test
echo "mkdir successfuuly"
为其添加权限
chmod 777 test.sh
./test.sh
执行结果为:
mkdir successfuuly
第一个7为当前用户对该脚本可读可写可执行,第二个7为同组用户对该脚本可读可写可执行,第三个7为其他用户对该脚本可读可写可执行,
在Shell命令中有一些具有特殊意义的字符,使用这些字符可以简化一些变量的输入。
$?最后一次执行的命令的返回码
$$shell进程自己的PID
$!Shell进程最近启动的后台进程的PID
$#命令行参数的个数(不包括脚本文件的名字在内)
$0脚本文件本身的名字
$1 $2第一个,第二个命令行参数
"$*"“$1,$2,$3,$<?XML:NAMESPACE PREFIX = ST1 />4”将所有命令行参数组织成一个整体,作为一个单词
"$@"“$1”"$2""$3"将多个命令行参数看做是多个“单词”
使用脚本也可以调用C代码,例如:
C代码:
int main(int argc,char **argv)
{
int i;
for(i=0;i<argc;i++)
printf("%d:[%s]\n",i,argv);
}
gcc arg.c -o arg编译这段C代码Shell脚本如下:
#!/bin/sh
echo $$
echo $#
echo "usage:$0 arg1 agr2"
./arg "$@"
./arg "$*"
获得执行权限:shmod 7 t3.sh
./t3.sh copy files to $HOME
执行结果:
2515
0
usage:./t3.sh arg1 arg2
0:[./arg]
1:[copy]
2:[files]
3:[to]
4:[/root]
0:[./arg]
1:[copy files to /root]
选择结构
if结构,case结构
循环结构
while结构
until结构
for结构
for结构实例代码
#!/bin/sh
counter=0
read d #读入文件目录字符串
b=$d #另存文件目录
d="$d/*" #给目录尾部加上/*,这样$d就为当前目录文件
for files in $d #用for循环统计文件数
do
counter=`expr $counter + 1`
done
echo "there are $counter files in $b"
给与执行权限chmod 7 s.sh
./s.sh #运行脚本
/mywork #输入文件目录
执行结果为:
there are 6 files in /mywork
用这个脚本可以方便统计输入的文件目录中的文件个数。
<?XML:NAMESPACE PREFIX = O />
在使用Shell脚本编写程序的时候可以看到,Shell命令的语法和C语言的语法有很大的相似之处,从这里我体会到了老师说的只要能熟练的掌握C语言,想要换到其他的语言上是十分容易的。
文章评论(0条评论)
登录后参与讨论