SHELL简介
  Pq37jUF4UeqZ 2023年11月02日 40 0

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

【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2023年11月08日 0

暂无评论

Pq37jUF4UeqZ