首页 > 系统相关 >SHELL简介

SHELL简介

时间:2023-09-25 19:31:47浏览次数:31  
标签:%- 字符 SHELL 简介 echo 命令 printf 2.3

1. 简介

2. 基本元素

2.1 命令与参数

$ cd word; ls -l whizprog.c
-rw-r--r--	1	tolstoy	devel	30252	Jul	9 22:52 whizprog.c
$ make
...
  1. 空白分割命令行中各个组成部分;
  2. 命令名称是命令行第一个项目,后面跟着选项;
  3. 选项开头使用-,不带参数的选项可以合并,如-l -t可以写为-lt
  4. 分号;表示命令顺次执行,如果是$,则表示命令异步执行,前一条命令后台执行。

三种基本命令:

  1. 内建命令:Shell本身所执行的命令,如cdread

  2. Shell函数:功能健全的一系列程序代码,以Shell语言编写,可以像命令一样引用;

  3. 外部命令:Shell副本在新的进程中所执行的命令。如下图:

image.png

2.2 变量

命名规则:

  • 字母或下划线开头
  • 后接字母、数字、下划线

长度无限制。

取出变量值使用$,而将几个变量值拼接起来,就需要使用双引号了:fullname="$first $middle $last"

2.3 终端打印

2.3.1 使用命令echo

$ echo 'Hello Bash!'
Hello Bash!

echo后信息可:

格式 注意
带单引号 不会对变量(如$var)求值,而是直接显示
带双引号 不能有字符!,需要转义\!
不带引号 不能使用;,因为其被认为是命令定界符

echo的转义序列

序列 说明
\a 警示字符,通常是ASCII中的BEL字符
\b 退格字符(Backspace)
\c 忽略最后的换行符的打印,且其后所有参数皆被忽略
\f 清除屏幕(Formfeed)
\n 换行(Newline)
\r 回车(Carriage Return)
\t 水平制表符(Horizontal tab)
\v 垂直制表符(Vertical tab)
\\ 反斜杠字符
\0ddd 将字符表示为1-3位的八进制数值

2.3.2 printf

和C语言中一样,例如:

#!/bin/bash
# filename: printf.sh
printf "%-5s %-10s %-4s\n" No Name Mark
printf "%-5s %-10s %-4s\n" 1 Sarath 80.3456

# 运行结果
No	Name		Mark
1	Sarath		80.35

2.3.3 注意

echoprintf中的标志应该出现在命令行内任何字符串之前,否则Bash会将其视为另一个字符串。

2.4 特殊文件

  • /dev/null

  • /dev/tty

标签:%-,字符,SHELL,简介,echo,命令,printf,2.3
From: https://blog.51cto.com/basilguo/7598743

相关文章

  • shell脚本中的EOF是什么
    概述在Shell脚本中,EOF(EndofFile)是一个特殊标记,用于指示一段文本的开始和结束位置。但它并不是Shell脚本中的关键字或保留字。您可以自由选择EOF之前的标记,只需确保开始和结束标记匹配即可。基本上<<EOF告诉shell您将输入多行字符串,直到“标记”EOF。您可以根据需要命名此标......
  • Java虚拟机的简介
    Java虚拟机的生命周期一个运行时的Java虚拟机负责运行一个Java程序。Java虚拟机的主要任务是加载class文件并且执行其中的字节码。Java虚拟机包含一个类装载器(classloader)。它可以从程序和API中加载class文件。JavaAPI中只有程序执行时需要的部些类才会被装载。当启动一个......
  • .NET MAUI 简介
    简介.NETMAUI是一种多平台框架,用于使用C#和XAML创建本机桌面和移动应用。.NETMAUI是Multi-platformApplicationUserInterface(多平台应用程序用户界面)的首字母缩略词。借助.NETMAUI,可设计能够在Windows、Android、iOS、iPadOS和macOS上运行的移动应用。假设......
  • 从文件路径中提取文件名的shell操作
    Sundray-SW/extdir#sfp=/extdir/debug_bin/ops-devsdSundray-SW/extdir#echo${sfp##*/}ops-devsdSundray-SW/extdir#basename${sfp}ops-devsdSundray-SW/extdir#dirname${sfp}/extdir/debug_bin ${}的一些特殊功能:file=/dir1/dir2/dir3/my.file.txt${file#*/}:拿......
  • bash shell快速备忘单
    linuxbashshell脚本的快速参考备忘单(全)原创 诺苏编程 Qt历险记 2023-08-1214:07 发表于广东收录于合集#linux10个#echo1个#bash1个入门hello.sh#!/bin/bashVAR="world"echo"Hello$VAR!"#=>Helloworld!执行脚本$bashhello.sh 变量NAME=......
  • 1785_GNU了解之一_主页上的简介
    全部学习汇总:GitHub-GreyZhang/g_GNU:AftersomeyearsIfoundthatIdoneedsomefreeair,sodiveintoGNUagain!问题1:什么是GNUGNU是一个自由软件的操作系统——也就是说,它尊重用户的自由。GNU运用使得一个计算机可以使用不限制你任何自由地软件。我们推荐安装GNU的一......
  • ansible教程:使用win_shell和win_copy从 HTTP 文件服务器下载文件并将其复制到目标位置
    with_fileglob参数无法直接指定HTTP文件服务器上的文件路径。它是用于在本地文件系统中进行文件的模式匹配,并将匹配的文件作为迭代项来执行任务。如果你需要从HTTP文件服务器上下载文件并将其复制到目标位置,你可以使用适当的工具或库来实现这个任务。下面是一个示例,使用curl......
  • 不同垃圾收集器的简介
    SerialNew(串行新生代收集器):这个收集器主要用于新生代,采用复制算法。它将新对象复制到一块干净的内存区域,并且在收集过程中会暂停应用程序的执行。ParallelNew(并行新生代收集器):与串行新生代收集器类似,也用于新生代,采用复制算法。不同之处在于它使用多线程来加速垃圾收集过程,提......
  • 一文读懂Shell进程操作:编程新手必看
    什么是程序,什么又是进程程序是指令的集合,而进程则是程序执行的基本单元。为了让程序完成它的工作,必须让程序运行起来成为进程,进而利用处理器资源、内存资源,进行各种 I/O 操作,从而完成某项特定工作。从这个意思上说,程序是静态的,而进程则是动态的。进程有区别于程序的地方还有:进程......
  • Lombok简介、使用、工作原理、优缺点
    1.Lombok简介Lombok是一个Java库,能自动插入编辑器并构建工具,简化Java开发。通过添加注解的方式,不需要为类编写getter或eques方法,同时可以自动化日志变量。简而言之:Lombok能以简单的注解形式来简化java代码,提高开发人员的开发效率。2.Lombok使用使用Lombok需要的开发环境Java+M......