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. [NOI 2020 Online] 入门组T1 文具采购(洛谷 P6188)题解

    原题传送门 题目部分:(来自于考试题面,经整理) [题目描述] 小明的班上共有 n 元班费,同学们准备使用班费集体购买 3 种物品: 1.圆规,每个 7 元. 2.笔,每支 4 元. 3.笔记本,每本 ...

  2. 补一下昨天的博客 J - Sabotage 网络流

    题目链接:https://vjudge.net/contest/299467#problem/J 这个题目是一个裸的最小割问题,就不多赘述了. #include <cstdio> #inc ...

  3. Linux时间的相关的操作

    时间(修改时区,修改时间,同步网络时间) 查看当前系统时间 date 修改时区 cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime 修改当前系统时间 ...

  4. python学习之如何一次性输出多个变量的值

    如果要输出多个结果 ,中间使用逗号隔开,且引用变量为%(变量1,变量2,变量3)例如

  5. 龙贝格算法 MATLAB实现

    龙贝格算法主要是不断递推和加速,直到满足精度要求 递推: 加速: 得到T表: MATLAB代码: function I = Romberg(f, a, b, epsilon) I = 0; h = b ...

  6. STM32 CubeIDE无法进行调试的问题

    解决了由于一个很容易忽视的细节最终导致系统配置存在错误造成STM32 CubeIDE无法进行调试的问题: 文章目录 来龙去脉 解决方案 反思 来龙去脉 在享受CubeIDE快速和便捷的服务之后,生成了 ...

  7. 三分钟快速搭建分布式高可用的Redis集群

    这里的Redis集群指的是Redis Cluster,它是Redis在3.0版本正式推出的专用集群方案,有效地解决了Redis分布式方面的需求.当单机内存.并发.流量等遇到瓶颈的时候,可以采用这种Re ...

  8. Go中操作mysql

    Go中操作mysql 首先在mysql里的test数据库中创建数据表 CREATE TABLE `userinfo` ( `uid` INT(10) NOT NULL AUTO_INCREMENT, ...

  9. Spring MVC教程——检视阅读

    Spring MVC教程--检视阅读 参考 Spring MVC教程--一点--蓝本 Spring MVC教程--c语言中午网--3.0版本太老了 Spring MVC教程--易百--4.0版本不是通 ...

  10. Lr运行错误Error: Socket descriptor not found. Hint: the problem might be

    在controller中,运行时,报如下错误“Error: Socket descriptor not found.  Hint: the problem might be solved applyi ...