shell脚本练习(一)

最近学习中遇到了,需要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/bash
echo “Waiting for a while....”
ls -l>home/tem1
a="Hello"
echo $a>/home/tem2

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

#!/bin/bash
dir=$1
shift
while [$1]
do
file=$1
cp $1 $dir
shift
done
ls $dir

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

#!/bin/bash
for file in *.c
do
cp ${file}${1}
done
ls ${1}-1S

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

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

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

#!/bin/bash
factorial=1
for a in `seq 1 10`
do 
   factorial=`expr $factorial \* ${a}`
done
echo "10!=${factorial}"
  • 7
    点赞
  • 27
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值