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}"
- shell脚本练习(一)
- shell脚本练习(二)
- shell脚本练习(三)
- shell脚本练习(进度条......)
- 【脚本练习】shell脚本
- shell脚本(一)
- shell脚本(一)
- LINUX shell脚本练习:备份文件(1)
- shell脚本练习 :备份文件(2)修订
- shell脚本(二)练习题目
- shell 脚本练习。笔记
- shell脚本程序练习
- shell脚本练习
- shell脚本几个练习
- shell脚本练习
- 练习shell脚本
- Shell脚本简单练习
- [OS] Shell脚本练习
- Android EditText 使用
- ios上 更改 状态栏(UIStatusBar)的颜色,你值得一看、收藏
- PHP之猴子吃桃
- 七桥问题
- Java `float` 数据类型的解说
- shell脚本练习(一)
- STL系列之二 stack栈
- 【总结】信息学竞赛第一年学习的所有STL函数
- eclipse中一些常见的报错处理(持续更新中……)
- 一个千万量级的APP使用的一些第三方库
- 闲着没事,写了个线性回归的源代码
- oracle 小问题之监听
- 深度学习与自然语言处理(7)_斯坦福cs224d 语言模型,RNN,LSTM与GRU
- Pushlet实现消息从服务器端推送到客户端