shell程序】的更多相关文章

shell程序介绍 1.查看我们的Linux(centos6.5为例)有多少我们可以使用的shell: [root@localhost bin]# cat /etc/shells /bin/sh /bin/bash /sbin/nologin /bin/dash /bin/tcsh /bin/csh 系统某些服务在运作过程中,会去检查使用者能够使用的shells,而这些shell的查询就是由/etc/shells这个档案. 2.当我们登入Linux系统的时候,系统就会给我一个shell来工作,而…
设计一个Shell程序,在/$HONE/test目录下建立50个目录,即user1-user50, 并设置每个目录的权限,其中其他用户的权限为:读:文件所有者的权限为: 读.写.执行:文件所有者所在组的权限为:读.执行. mkdir -p /home/www/ chmod chhh 编写shell程序,添加一个新组为class1,然后添加属于这个组的20个用户, 用户名的形式为stdxx,其中xx从01到20. 提示: groupadd class1 添加用户组 useradd $usernam…
下面是工作中用到的链接数据库的shell程序. #!/bin/bash ] ; then echo "prase is wrong ,please check first" exit fi#知识点: 1,$#代表了命令行的参数数量 2,-le表示小于等于,拓展 lt表示小于,gt表示大于,ge表示大于等于,eq表示等于,ne表示不等于 if [ "$1"x != "online"x ] && [ "$1"x !…
变量的赋值 变量的访问 变量的输入 4.1 变量的赋值     在Shell编程中,所有的变量名都由字符串组成,并且不需要对变量进行声明.要赋值给一个变量,其格式如下: 变量名=值  注意: 等号(=)前后没有空格 例如: x=6 a="How are you " 表示把6赋值给变量x,字符串"How are you "赋值给变量a. 4.2 访问变量值 如果要访问变量值,可以在变量前面加一个美元符号"$",例如: [root@localhost…
位置参数 内部参数 如同ls命令可以接受目录等作为它的参数一样,在Shell编程时同样可以使用参数.Shell程序中的参数分为位置参数和内部参数等. 3.1 位置参数 由系统提供的参数称为位置参数.位置参数的值可以用$N得到,N是一个数字,如果为1,即$1.类似C语言中的数组,Linux会把输入的命令字符串分段并给每段进行标号,标号从0开始.第0号为程序名字,从1开始就表示传递给程序的参数.如$0表示程序的名字,$1表示传递给程序的第一个参数,以此类推. 3.2 内部参数 上述过程中的$0是一个…
编写Shell程序 执行Shell程序 Shell程序有很多类似C语言和其他程序设计语言的特征,但是又没有程序语言那样复杂.Shell程序是指放在一个文件中的一系列Linux命令和实用程序.在执行的时候,通过Linux操作系统一个接一个地解释和执行每条命令.首先,来编写第一个Shell程序,从中学习Shell程序的编写.修改权限.执行过程. 2.1 编辑Shell程序 编辑一个内容如下的源程序,保存文件名为date,可将其存放在目录/bin下. [root@localhost bin]#vi d…
第一个shell脚本 1.       shell编程的方式 交互式shell编程 非交互式shell编程:执行的语句存放到一个文件 shell脚本:可以任意文件名,建议扩展名为sh 2.       shell脚本的语法(algol语法:basic|pascl) 字word:字面值(word),标示字(name),保留字 使用空格tab键 分隔 语句statement: 使用:与newline键(回车)等分隔 块block: 多种:流程控制块/函数块 元字符:容易歧义字符 | ; & ( )…
不看笔记,长时间不用自己都忘了,还是得经常看看笔记啊. 一个简单的shell程序 shell结构 1.#!指定执行脚本的shell 2.#注释行 3.命令和控制结构 创建shell程序的步骤 第一步:创建一个包含命令和控制结构的文件 第二步:修改这个文件的权限使它可以执行. 使用chmod u+x 第三步:执行shell sh /test/example.sh   Shell变量 变量:是shell传递数据的一种方法,用来代表每个取值的符号名 shell有两类变量:临时变量和永久变量 临时变量是…
  这里我首先会介绍一个Shell是什么,再介绍我的第一个Shell程序和从中总结的经验. 一.Shell是什么 在说我的这个Shell程序之前,还是先跟大家说说什么是Shell吧,相信Shell这个词大家一定听过很多了,但是它其实是什么东西呢?其实Shell是一个程序,我们在shell中输入一些命令,它就告诉操作系统内核我们想做什么,好让内核可以控制硬件来正确无误地工作.简单点来说就是,Shell的功能只是提供一个用户操作系统的接口,而这个shell则可以调用其他的程序来完成这些操作,只要能操…
编辑简单的 shell程序 知道了vi编辑器的使用规则之后,结合shell的使用规则,可以编辑简单的 shell程序试试手 题目如下: 1.用while语句创建一个根据输入的数值求累加和(1+2+3+....+n)的shell程序. Shell程序如下: #!/bin/bash #filename:ab echo -n "please input Number :" read NUM number=0 sum=0 while [ $number -le $NUM ] do number…
Linux Shell 程序调试 Shell程序的调试是通过运行程序时加入相关调试选项或在脚本程序中加入相关语句,让shell程序在执行过程中显示出一些可供参考的“调试信息”.当然,用户也可以在shell程序中的适当位置加入一些echo命令用于调试与跟踪.   方法一:在运行脚本程序时加入调试选项: [用法]bash –选项 ./shellScript.sh 几个常用的调试选择项如下:         -e :如果一个命令返回一个非0退出状态值(失败),就退出.         -n : 不需要…
学习目标变量的赋值变量的访问变量的输入 12-4-1 变量的赋值在Shell编程中,所有的变量名都由字符串组成,并且不需要对变量进行声明.要赋值给一个变量,其格式如下:变量名=值.注意:等号(=)前后没有空格例如:   x=6   a=”How are you ”表示把6赋值给变量x,字符串“How are you ”赋值给变量a. 12-4-2 访问变量值如果要访问变量值,可以在变量前面加一个美元符号“$”,例如:ubuntu@ubuntu:~$ a="How are you  "u…
学习目标位置参数内部参数 如同ls命令可以接受目录等作为它的参数一样,在Shell编程时同样可以使用参数.Shell程序中的参数分为位置参数和内部参数等. 12-3-1 位置参数由系统提供的参数称为位置参数.位置参数的值可以用$N得到,N是一个数字,如果为1,即$1.类似C语言中的数组,Linux会把输入的命令字符串分段并给每段进行标号,标号从0开始.第0号为程序名字,从1开始就表示传递给程序的参数.如$0表示程序的名字,$1表示传递给程序的第一个参数,以此类推. 12-3-2  内部参数上述过…
学习目标编写Shell程序执行Shell程序 正文Shell程序有很多类似C语言和其他程序设计语言的特征,但是又没有程序语言那样复杂.Shell程序是指放在一个文件中的一系列Linux命令和实用程序.在执行的时候,通过Linux操作系统一个接一个地解释和执行每条命令.首先,来编写第一个Shell程序,从中学习Shell程序的编写.修改权限.执行过程. i.编辑Shell程序编辑一个内容如下的源程序,保存文件名为date,可将其存放在目录/home/study(练习专用目录,不存在自己新建一个)下…
实现一个自己的shell程序,这个程序有这些功能:解释执行命令,支持输入输出重定向,支持管道,后台运行 程序.当运行该程序后,它支持以下的命令格式: 1.单个命令,如:ls.2.带l到多个参数的命令,如ls -l.3.带一个输出重定向的命令.4.带一个输入重定向的 命令.5.带一个管道的命令.6.后台运行符&可加在各个命令的最后面.7.输入exit或logout退出myshell. 错误处理:1.输入错误的命令格式报错.2.输入不存在的命令报错. 程序主函数的流程图如下: 程序的各个函数的功能及…
输入和输出 输入指的是Shell程序读入数据.有从文件读取.从用户输入读取等方式读入数据.输出指的是Shell程序的运行 结果的处理,可以显示到屏幕或保存到文件. 用ceho命令输出结果 echo $str         #将结果输出到终端. echo $str >file  #将结果保存到文件file中,如果没有文件会新建一个文件.如果已经有文件则会覆盖以前的文件 echo $str >>file  #将结果追加到文件file中. echo输出的内容可以有下面的格式控制字符. \c:…
shell结构 1.#!指定执行脚本的shell 2.#注释行 3.命令和控制结构 创建shell程序的步骤 第一步:创建一个包含命令和控制结构的文件. 第二步:修改这个文件的权限使它可以执行.使用chmod u+x 第三步:执行 ./example (也可以使用“sh example”执行) Shell变量 变量:是shell传递数据的一种方法,用来代表每个取值的符号名. Shell有两类变量:临时变量和永久变量. 临时变量是Shell程序内部定义的,其是用范围仅限于定义它的程序.对其它程序不…
在Windows环境下的所谓shell程序就是dos命令行程序,比如VC的CL.exe命令行编译器,JDK的javac编译器,启动java程序用的java.exe都是标准的shell程序.截获一个shell程序的输出是很有用的,比如说您可以自己编写一个IDE(集成开发环境),当用户发出编译指令时候,你可以在后台启动shell 调用编译器并截获它们的输出,对这些输出信息进行分析后在更为友好的用户界面上显示出来. 为了方便起见,我们用C#作为本文的演示语言. 通常,系统启动Shell程序时缺省给定了…
[root@localhost ~]# cat jiechen.sh #!/bin/bash #设计一个shell程序计算n的阶乘,要求: #.从命令行接收参数n; #.在程序开始后立即判断n的合法性,即是否有参数,若有是否为正整数,若非法请给错误提示. #.最后出计算的结果 num=$ &>/dev/null [ $? -ne ] && [ $# -ne ] && [ $num -le ] && s= $num` do s=$(($s*$i)…
C++/Php/Python/Shell 程序按行读取文件或者控制台方法总结. 一.总结 C++/Php/Python/Shell 程序按行读取文件或者控制台(php读取标准输入:$fp = fopen("/dev/stdin", "r");) 1.php读取标准输入:$fp = fopen("/dev/stdin", "r"); 二.C++/Php/Python/Shell 程序按行读取文件或者控制台 写程序经常需要用到从文…
上节中已经对后台作业进行了简单处理,基本上要实现的功能已经完了,下面回过头来,对代码进行一个调整,把写得不好的地方梳理一下,给代码加入适当的注释,这种习惯其实是比较好了,由于在开发的时候时间都比较紧,都只是想办法去尽快实现,而肯定会有一些代码是写得不太好的,所以有时间的话最好是从头至尾将整个代码进行梳理,也许在梳理的过程中会发现许多不足的地方,好了,下面开始: 而这个信号安装函数是在init.c中实现的: 接下来进行shell循环: 它的实现是在parse.c中: 如注释所示,可以挪至init.…
之前已经花了不少篇幅学习了linux系统编程的很多知识点:文件与io.进程.信号.管道,而零散的知识点,怎么能够综合的串接起来是学习的一个很重要的目的,当然最好的方式就是用所学的知识点做一个项目了,所以接下来会实现一个小型的迷你shell程序,跟缩减版的系统shell程序,不要看着项目很小,但是五脏俱全,先来看一下我们要实现的功能: 如exit会退出程序等. 另外还能捕捉一些信号,如:ctrl+c,也能忽略一些信号,如:ctrl+\,禁止退出自己的程序,这里就不演示了. 下面就来从零开始一步步实…
原文地址:http://www.sohu.com/a/138822796_610671 首先,我们从一个十分简单的例子test.sh开始吧: #!/bin/sh #this is a test. cd /tmp echo "hello,this is a test" 这是一个十分简单的程序,但是运行结果可能会让你吃惊哦! 这个时候,我们发现程序运行之后,并没有改变当前目录.(黑人问号???) 别着急,我们先了解一下linux程序如何运行. linux程序三种执行方法 运行linux程序…
2007-12-13 07:51:40 标签:实例 程序 Shell 休闲 职场 Shell程序实例集锦一      前言:下面这些hell实例都是自己写的或者用过的一些Shell小程序.整理整理.    ——Ajian 1.删除B文件中和A文件相同的内容 #!/bin/sh# Ajianfor file in `cat a.list | cut -d. -f1`dosed -i '/'$file'/d' b.listdone   2.根据文件名的前四位创建二级目录 #!/bin/sh#Ajia…
使用vi写一个shell程序 touch cdlog  echo "cd /app/mycrm/log" >> cdlog  chmod +x cdlog   执行: ./cdlog ,像 的例子,程序中只要一行内容 cd /app/mycrm/log 写完后把这个文件保存到  $PATH变量  的相应目录中,就可以直接调用执行了 亦可编好完成功能的程序或脚本 在/bin 或/usr/bin下建起相应的连接…
写程序经常需要用到从文件或者标准输入中按行读取信息,这里汇总一下.方便使用 1. C++ 读取文件 #include<stdio.h> #include<string.h> int main(){ const char* in_file = "input_file_name"; const char* out_file = "output_file_name"; FILE *p_in = fopen(in_file, "r"…
在最简单的情况下,脚本程序不过是存储在一个文件里的系统命令列表.这至少让你执行它 时不必重新按顺序键入相同功能的命令序列.一个清空/var/log目录下的日志文件的脚本 # Cleanup # 必须以root用户运行. cd /var/log cat /dev/null > messages cat /dev/null > wtmp echo "Logs cleaned up." 这没有什么不同寻常的,它不过是一组可以容易地从控制台或xterm(译者注:一种图形虚拟控制台)…
#!/bin/sh通知采用bash解释.如果在echo语句中执行shell命令date,则需要在date命令前面加符号&: 编辑完文件之后不能立即执行该文件,需要给文件设置可执行权限.chmod +x date 另一种执行date的方法就是把它作为一个参数传给shell命令: 方法3 为了在任何目录下都可以编译和执行shell编写的程序,我们可以把程序所在的目录加到环境变量中 引用变量时要加$符号: 将好多命令一起执行时,可以写个文件…
今天大波又提起昨天我说的那个程序.这样的,起初我想写一个makefile,每次写完新代码后一键编译目录下所有的.cpp文件. 原因是用makefile的话,每次要把目标文件加紧去才能编译.感觉不方便.想写一个makefile,一劳永逸.每次写完新代码后直接编译,不用再加入目标文件. 但查了很多治疗,没发现能解决问题的代码.大波问我,干嘛不用shell写一个呢.所以,我暂时放弃makefile,用shell写了一个. 实现的基本功能:编译目录下所有.c和.cpp文件. 代码: #! /bin/ba…
需求 线上环境有一些定时脚本(用crontab -l可查看当前用户的),有时我们可能会改这些定时任务的脚本内容.为避免改错无后悔药,需用shell实现一个程序,定时备份crontab中的.sh脚本文件 分析与思考 所有用户的crontab放在/var/spool/cron/目录,各个用户放在各自目录下.只要把这些用户的crontab读取出来,提取出其中的.sh文件,然后按照用户备份到相应目录就行.最后配一个crontab,定时去执行这个备份程序. 备份程序的实现 #!/bin/bash # th…