Shell概述1

脚本文件内容(vim ex2)

#!/bin/bash
#If no arguments,then listing the current directory.
#Otherwise,listing each subdirectory.
if test $#=0
then ls .
else
for i
do
ls -l $i | grep '^d'
done
fi
#如果Shell脚本执行过程中没有参数,就列出当前工作目录的内容,如果有参数的话,就遍历参数,列出指定目录下的所有文件内容。

#后跟的内容为注释,#!/bin/bash例外,它表示当前脚本要要/bin/bash解释执行。

test后是测试条件,在Shell脚本中以$符号开始后面跟着的字符串通常都会被当做变量处理,#是一个特殊字符,一般表示数量,$#表示这个脚本执行过程中的参数个数。

无参数执行: ./ex2

有参数执行: /ex2 . ..

Shell预先定义的特殊变量及其含义

  • $# 命令行上参数的个数,但不包含shell脚本名
  • $? 上一条命令执行后的返回值
  • $$ 当前进程的进程号
  • $! 上一个后台命令对应的进程号
  • $* 表示在命令行中实际给出的所有实参字符串
  • $@ 它与$*基本功能相同

特殊字符

  1. 单引号
    • 单引号里的都当做普通字符处理
  2. 双引号
    • 除了"`","$","\" 外都当做普通字符处理;

    • "`"为命令替换(英文模式下TAB上面那个键),倒引号括起来的字符串会被shell解释为命令行

    • "$"为变量替换

    • "\"为转义

  3. 输入/输出重定向
    • 输入重定向

      bash < ex2 (用bash执行ex2命令)

    • 输出重定向

      who > w.txt(将who命令的结果直接输入到w.txt,如果w.txt之前存在内容,则会被覆盖)

      who >> w.txt(将who命令的结果输入到w.txt原有内容之后)

  4. 注释
    • 通常#后跟的即为注释
  5. 管道线
    • 使用"|",管道线之前的命令结果作为管道线之后命令的输入

      例:cat w.txt | wc -l(查看w.txt的内容并统计行数)
  6. 后台命令
    • 使用"&",在需要后台执行的命令后跟&即可

      例:apt-get update&

Shell概述1的更多相关文章

  1. shell概述与echo命令

    一.Shell概述 1.什么是shell? 由此可见shell是用户与系统进行交互的接口,通过执行各种命令来完成时间处理与调度. 2.shell分类 Shell类别 易学性 可移植性 编辑性 快捷性 ...

  2. Shell概述

    一,Shell原理

  3. Linux系列教程(二十)——Linux的shell概述以及如何执行脚本

    从这篇博客开始,我们将进入Linux的shell脚本的学习,这对于Linux学习爱好者而言是特别重要的一节,也是特别有意思的一节,shell 脚本就像我们知道的Java,php类似的编程语言一样,通过 ...

  4. HoloLens开发手记 - HoloLens shell概述 HoloLens shell overview

    使用HoloLens时,shell是由你周围的世界和来自系统的全息图像构成.我们将这种空间成为混合世界(mixed world). shell包含了一个可以让你将全息图像和应用放置在世界中的开始菜单( ...

  5. 【第一章】Shell 概述

    一.什么是Shell? shell是一个命令解释器,它不仅包含大量的命令以实现操作系统的对话,还可以实现定义变量.条件判断.循环控制.函数调用等功能. 作用:解释执行用户输入的命令及程序等. 从键盘输 ...

  6. Shell 概述、截取字符操作等

    Shell 是用C语言编写的程序,便于用户与Linux内核系统进行交互. Linux的Shell种类众多,常见的有: Bourne Again Shell (/bin/bash) Bourne She ...

  7. Linux学习笔记 (八)Shell概述

    一.什么是Shell? Shell是一个命令行解释器,它为用户提供了一个向Linux内核发送请求以便运行程序的界面系统级程序,用户可以用Shell来启动,挂起,停止甚至是编写一些程序.Shell还是一 ...

  8. hbase shell概述

    hbase shell-general(常规指令):http://www.cnblogs.com/husky/p/6374867.html hbase shell-ddl(表定义指令):http:// ...

  9. Shell 01 shell概述

    1.查看shells:/etc/shells /bin/sh /bin/bash /sbin/nologin /usr/bin/sh /usr/bin/bash /usr/sbin/nologin / ...

随机推荐

  1. Nginx模块开发(5)————开发简单的HTTP过滤模块

    该模块可实现如下的功能,在浏览器输入http://你的IP/lcw.text,能够读出你在根目录下创建的lcw.txt里面的内容,并在前面加上一句字符串where there is a will,th ...

  2. 【Java8新特性】你知道Java8为什么要引入Lambda表达式吗?

    写在前面 这是一道真实的面试题,一个读者朋友出去面试,面试官竟然问他这样一个问题:你说说Java8中为什么引入Lambda表达式?引入Lambda表达式后有哪些好处呢?还好这个朋友对Java8早有准备 ...

  3. 使用JDBC连接oracle数据库

    需要jar包:ojdbc6.jar

  4. Anaconda 常用命令大全

    帮助目录 检查conda版本 升级当前版本的conda 创建一个新环境 激活新环境 Linux,Mac: Windows: 列出所有的环境 切换环境(activate/deactivate) Linu ...

  5. Spring杂谈 | 什么是ObjectFactory?什么是ObjectProvider?

    在Spring的学习过程中,总是学的越多,不懂的越多.本来只是想将ApplicationContext的相关内容全部梳理一遍,结果发现涉及的东西越来越多,比如上篇文章中的ResolvableType, ...

  6. 05_CSS入门和高级技巧(3)

    上节课复习 !important不能影响就近原则,远的标签如果加上!important也干不过近的标签! !important不能影响继承权重是0,通过继承的标签加上!important也干不过直接选 ...

  7. [uva_la7146 Defeat the Enemy(2014 shanghai onsite)]贪心

    题意:我方n个军队和敌方m个军队进行一对一的对战,每个军队都有一个攻击力和防御力,只要攻击力不小于对方就可以将对方摧毁.问在能完全摧毁敌方的基础上最多能有多少军队不被摧毁. 思路:按防御力从大到小考虑 ...

  8. IntelliJ Idea14 创建Maven多模块项目,多继承,热部署配置总结(三)

    pom.xml中repositories.pluginRepository的作用 pom.xml中repositories标签的作用是: 用来配置maven项目的远程仓库.示例如下: <repo ...

  9. redis主从复制、主从延迟知几何

    本片章节主要从 redis 主从复制延迟相关知识及影响因素做简要论述. 1.配置:repl-disable-tcp-nodelay 也即是TCP 的 TCP_NODELAY 属性,决定数据的发送时机. ...

  10. 第四篇:NLP(Natural Language Processing)自然语言处理

    NLP自然语言处理: 百度AI的 NLP自然语言处理python语言--pythonSDK文档: https://ai.baidu.com/docs#/NLP-Python-SDK/top 第三方模块 ...