命令和参数


    #!/bin/sh  其中#!用来告诉系统它后面的参数是用来执行该文件的程序,必须放在脚本的首行,不然会在执行脚   本  的时候报错。当一个文件开头的两个字符是#!时,内核会扫描其它的部分看是否存在该行的其余部分,看是否存在可用来执行程序的解释器的完整路径,此外,内核还会扫描是否有一个选项要传递给解释器。

    eg:csh脚本 路径 /usr/ucb/whi
第一行 #!/bin/csh -f ,如果shell的查找路径里面有/usr/ucb,当用户键入whi -q /dev/tty 这条命令时,内核在解释过#!这行后,便会以如下的方式引用csh:
/bin/csh -f /usr/ucb/whi -q /dev/tty

shell的三种命令:内建命令,shell函数,外部命令
* 内建命令:shell本身所执行的命令 eg: cd ls echo 这类的命令
* shell函数:功能健全的一系列代码,可以像命令那样引用
* 外部命令:shell副本所执行的命令

 变量
在shell编程中,所有的变量都由字符串组成,并且不需要对变量进行声明,对一个变量赋值:
变量名=值
如果想取出变量的值,需要在变量名前加美元符$,变量名=值,这中间不能有空格
如果变量的值含有空格时,要加上引号,像这样:a="1 2 3"

简单的IO命令及重定向
程序应该有数据来源端 、目的端、报告错误的地方,在shell里面分别对应标准输入,标准输出,和错误标准输出。
简单的echo,printf命令 (IO命令)
echo string 用来产生shell脚本的输出
echo 将各个参数打印到标准输出,并以换行符结束,如果不需要用 换行符结束,可用echo -n 或者echo " \c"
pintf string 【arguments】 可以按格式输出简单的字符串
其中,第一部分是一个字符串,用来描述输出的排列方式,此字符串包含了按字面显示的字符以及格式声明
格式声明就是表示参数应该按照何种格式进行输出
eg:printf "the first program always prints '%s,%s'!\n" hello world
输出: the first program always prints 'hello world ' 以字符串的格式输出hello world
printf "hello world \n" 注意:printf不会像echo那样,会自动提供一个换行符号
重定向和管道符
改变默认的I/O来源端和目的端,实际上,系统默认的标准输入(键盘),标准输出(终端)
* < 改变标准输入 > 改变标准输出
eg:program < file1 program> file2
* >>追加 如果目的文件不存在,>>会重新新建一个,存在的话,会添加信息到原文件结尾处。
* | 管道符
eg: p1 | p2 p1的标准输出是p2的标准输入

shell脚本入门及基本元素的更多相关文章

  1. Linux Shell脚本入门--cut命令

    Linux Shell脚本入门--cut命令 cut cut 命令可以从一个文本文件或者文本流中提取文本列. cut语法 [root@www ~]# cut -d'分隔字符' -f fields &l ...

  2. linux的shell脚本入门

    Linux shell脚本入门教程 为什么要进行shell编程 在Linux系统中,虽然有各种各样的图形化接口工具,但是sell仍然是一个非常灵活 的工具.Shell不仅仅是命令的收集,而且是一门非常 ...

  3. (一)shell脚本入门

    shell脚本入门 1.脚本格式 脚本以#!/bin/bash 开头(指定解析器) 2.第一个shell脚本:helloworld (1)需求:创建一个shell脚本,输出helloworld 运行: ...

  4. Linux Shell脚本入门--wget 命令用法详解

    Linux Shell脚本入门--wget 命令用法详解 wget是在Linux下开发的开放源代码的软件,作者是Hrvoje Niksic,后来被移植到包括Windows在内的各个平台上.它有以下功能 ...

  5. 【shell】shell脚本入门

    1. 前言 1.1 为什么学习shell编程 Shell脚本语言是实现Linux/UNIX系统管理及自动化运维所必备的重要工具,Linux/UNIX系统的底层及基础应用软件的核心大部分涉及Shell脚 ...

  6. Linux入门第五天——shell脚本入门(上)基本概念

    一.什么是shell脚本 Shell 脚本(shell script),是一种为 shell 编写的脚本程序. 二.shell入门 1.先导知识 变量知识补充:https://www.cnblogs. ...

  7. Linux Shell 脚本入门

    linux shell 脚本格式 #!/bin/sh#..... (注释)命令...命令... 使用vi 创建完成之后需设置权限 chmod +x filename.sh 执行命令: ./filena ...

  8. Shell脚本入门与应用

    编写第一个shell脚本 如同其他语言一样,通过我们使用任意一种文字编辑器,比如 nedit.kedit.emacs.vi 等来编写我们的 shell 程序.程序必须以下面的行开始(必须方在文件的第一 ...

  9. shell脚本入门

    什么是Shell脚本 示例 看个例子吧: #!/bin/sh cd ~ mkdir shell_tut cd shell_tut for ((i=0; i<10; i++)); do touch ...

随机推荐

  1. PSP记录个人项目耗时情况

    四则运算编程 PSP记录个人项目耗时情况 PSP Personal Software Process Stages Time(%) Planning 计划 7 Estimate 估计这个任务需要多少时 ...

  2. 简单学会.net remoting

    简介 •.net remoting是.net在RPC分布式应用的技术.首先,客户端通过 remoting访问通道以获得服务端对象,再通过代理解析为客户端对象,通过通道来实现远程对象的调用. 原理 •远 ...

  3. 企业项目开发--分布式缓存Redis

    第九章 企业项目开发--分布式缓存Redis(1) 注意:本章代码将会建立在上一章的代码基础上,上一章链接<第八章 企业项目开发--分布式缓存memcached> 1.为什么用Redis ...

  4. Windows下配置nginx+php(wnmp)

      第一部分:准备工作.(系统:Windows 8.1) 1.首先是下载软件. NGINX-1.3.8官网下载:http://nginx.org/en/download.html PHP5.4.8版本 ...

  5. 关于java对Excel的读取

    /*注意:读取的Excel文件 请另存为2003版本的Excel,否则可能会报错别忘记导入第三方的jar包*/package com.zzp.ExcelParse;import jxl.Cell;im ...

  6. Ionic 的 ng-class 在聊天功能上面的巧妙运用

    很多人在问我是ionic好呢?还是react好呢? 其实我只想告诉你去看文档啊,不用用怎么知道哪个合适呢? 嘿嘿但是真的这么问的时候我也不会这么回答的,那岂不是太张狂了哈哈哈 react我确实没有用过 ...

  7. Windows7 安装vs2015 之后 调试Web项目IIS启动不了 aspnetcore.dll未能加载

    安装windows企业版,整整折腾了两天了,一个本身家里网络环境不好,时不时掉线,终于披荆斩棘,克服了所有困难,结果VS2015 EnterPrise 版本在调试Web环境的时候,始终在任务栏里找不到 ...

  8. 发布自己的pods到CocoaPods trunk 及问题记录

    这两天准备把之前写的一些小玩意添加到pods库中去,参考了一些资料后进行操作,实际中也遇到了一些问题,记录下来,问题及解决方式在后面. 参考内容转载如下: 首先更新了用trunk之后,CocoaPod ...

  9. c# 第一个实例 通哥

    using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; usin ...

  10. 数据库DDL语句书写规范

    数据库DDL语句书写规范 1.SQL语句编写说明编写SQL语句应遵循统一的规范,包括大小写.空格.换行.缩进等等,只有完全一样的SQL才能在数据库中共享,从而减少硬解析. 字段类型.长度:根据数据情况 ...