shell脚本练习(一)

来源:互联网 发布:地面站软件 编辑:程序博客网 时间:2024/06/06 04:32

最近学习中遇到了,需要shell脚本编写,但是对于shell一窍不通,为了满足学习需求,同时学会一门脚本语言的编写也是很重要的一项能力,对于提高自己有很大的好处。
shell一些常用的基础知识,上网查查,看了一些基础,但是不管看多少最终实战最重要,因此,这里我整理一些做过的题目问题和常用的问题与基础知识,供给初学者参考。
1、linux的shell编程中#!/bin/sh和$bash是什么意思
#! /bin/sh 是指此脚本使用/bin/sh来解释执行,#!是特殊的表示符,其后面根的是此解释此脚本的shell的路径
$bash $表示系统提示符,$ 表示此用户为普通用户,超级用户的提示符是
bash是shell的一种,是linux下最常用的一种shell。
$bash的意思是执行一个子shell,此子shell为bash。
要注意,在每个脚本的开头都使用”#!”,这意味着告诉你的系统这个文件的执行需要指定一个解 释器.#!实际上是一个2字节[1]的魔法数字,这是指定一个文件类型的特殊标记, 换句话说, 在 这种情况下,指的就是一个可执行的脚本(键入man magic来获得关于这个迷人话题的更多详细 信息).在#!之后接着是一个路径名.这个路径名指定了一个解释脚本中命令的程序,这个程序可 以是shell,程序语言或者是任意一个通用程序.这个指定的程序从头开始解释并且执行脚本中 的命令(从#!行下边的一行开始),忽略注释.[2] 如: 1 #!/bin/sh 2 #!/bin/bash 3 #!/usr/bin/perl 4 #!/usr/bin/tcl 5 #!/bin/sed -f 6 #!/usr/awk -f
注意: #! 后边给出的路径名必须是正确的,否则将会出现一个错误消息,通常是 “Command not found”,这将是你运行这个脚本时所得到的唯一结果.
如果在脚本的里边还有一个#!行,那么bash将把它认为是一个一般的注释行.
2、编写一个shell脚本,完成功能:
1)显示文字“Waiting for a while….”
2)长格式显示当前目录下面的文件和目录,并输出重定向到/home/file.txt文件
3)定义一个变量,名为s,初始值“Hello”
4)使该变量输出重定向到/home/string.txt文件

#!/bin/bashecho “Waiting for a while....”ls -l>home/tem1a="Hello"echo $a>/home/tem2

3、编写一个shell脚本,它把第二个位置参数及其以后的各个参数指定的文件复制到第一个位置参数指定的目录中。
(每次运行shift(不带参数的),销毁一个参数,后面的参数前移)

#!/bin/bashdir=$1shiftwhile [$1]dofile=$1cp $1 $dirshiftdonels $dir

4、编写一个shell脚本,利用for循环将当前目录下的.c文件移动到指定的目录,并按文件大小显示出移动后指定的目录的内容。

#!/bin/bashfor file in *.cdocp ${file}${1}donels ${1}-1S

5、利用数组形式存放10个城市的名字,然后利用for循环把它们打印出来。

#!bin/bashname=(唐山 北京 天津 保定 秦皇岛 廊坊 石家庄 邯郸 承德 邢台)for i in ${name[*]}doecho $idone

6、写一个脚本,利用循环计算10的阶乘

#!/bin/bashfactorial=1for a in `seq 1 10`do    factorial=`expr $factorial \* ${a}`doneecho "10!=${factorial}"
1 0
原创粉丝点击