bash下执行a='$PATH',求a

1)Linux 核心的许可证是什么?

3)确定myfile的文件类型的命令是什么

4)用来分离目录名和文件名的字符是什么

5)你想显示文件"longfile"的最后10行,下面那个命令是正确的(选择最合适的答案)

6)假如你得到一个运行命令被拒绝的信息,你可以用哪个命令去修改它的权限使之可以正

7)拷贝mydir\myfile文件到dir2目录下,但是系统提示这个文件已经存在,下面那个命

8)下面那个命令允许对文件重命名(选择最合适的答案)

9)假如文件是按8进制来定义,下面那个值代表了读和写

10)linux临时目录一般存在下面那个文件夹中

11)一个文件的权限是-rw-rw-r--,这个文件所有者的权限是什么

12)下面哪个值代表多用户启动

13)下面哪个文件代表系统初始化信息

}

用法:命令>文件名

特性:覆盖(当输入文件和输出文件是同一文件,文件内容被清空;不适合连续重定向)

用法:命令2>文件名

用法:命令1 | 命令2

特性:上一个的命令输出作为下一个命令的输入

( ? ) 匹配任意一个字符

( & ) 后台运行命令(守护程序)

特性:关闭当前终端窗口,程序仍在运行

特性:如果命令1执行成功,继续执行命令2;否则,不执行命令2.

用法:命令1 || 命令2

特性:如果命令1执行成功,不执行命令2;否则,才执行命令2.

特性:把它所包含的内容作为普通字符,但'' \ $ ``除外.

特性:把它所包含的内容作为普通字符,无例外.

特性:执行它所包含的内容

特性:把符号的特定含义去掉,使其变成普通标点.

特性:调用变量,从而得到‘变量的值

用法:命令1 ; 命令2

特性:一行语句中,顺次执行各命令


1. 表示注释 #注释

2. 在引号中间和\#等表示#本身

这里特别要注意第四个,一定要有空格,否则不认同是注释

2.在条件中的if和then如果放在同一行,也用;分隔

2.在条件中的if和then如果放在同一行,也用;分隔

2.文件名的前缀,隐藏文件

3.目录:.当前目录,..父目录

4.正则表达式:匹配任意单个字符

首先,先举例说明一下"."作为source使用的实例

# 这是需要被脚本加载的数据文件.

# 这种文件可以包含变量, 函数, 等等.

# 让我们初始化一些变量.

接下来我们看看脚本的执行结果:

上面的结果已经很有力的说明了我们想要的结论

.作为隐藏文件时,建立隐藏文件的方法:touch .data-file

.作为匹配字符说明如下:ab.  可以表示ab+任意字符,处理换行,并且必须是一个字符ab.不能表示ab

"" 部分引用 支持通配符扩展

' ‘ 全引用,不进行通配符扩展

'STRING'将会阻止STRING中所有特殊字符的解释. 这是一种比使用"更强烈的形式

\X将会"转义"字符X. 这等价于"X", 也等价于'X'. \通常用来转义"和', 这样双引号和单引号就不会被解释成特殊含义了.

, 多个命令都被执行,但返回最后一个

逗号操作符链接了一系列的算术操作. 虽然里边所有的内容都被运行了,但只有最后一项被返回.

逗号之前会运算,但是只有最后一项被返回

`command`结构可以将命令的输出赋值到一个变量中去. 

这里例子是最有力的的说明,在上一章中只不过没有到这个方法,这里pwd命令会返回当前路径,然后与LOG_DIR进行比较,同样你可以定义一个变量保存pwd返回的内容,比如:

2.死循环: while :,可以被认为与shell的内建命令,与true作用相同.

3.在if/then中表示什么都不做,引出分支

#  如果一个或多个必要的环境变量没被设置的话, 就打印错误信息. 

6.在和 > (重定向操作符)结合使用时,把一个文件截断到0 长度,没有修改它的权限;如果文件在之前并不存在,那么就创建它.如: 

在和>>重定向操作符结合使用时,将不会对想要附加的文件产生任何影响.

如果文件不存在,将创建.

7.可能用来作为注释行, 虽然我们不推荐这么做. 使用#来注释的话, 将关闭剩余行的错误检查, 所以可以在注释行中写任何东西. 然而, 使用:的话将不会这样.

* 匹配0个或多个字符;数学乘法;**幂运算

? 匹配任意一个字符;但在((a>b?a:b))表示c语言中的三目运算

2.正则表达式中表示行的结尾

在正则表达式中, "$"表示行结束符,先分析一下下面的例子吧

我们也看看他的执行结果:

7.$? 进程的返回状态

1.命令组,在一个子Shell中运行 (a=3;echo $a) 其中定义的变量在后面不可用

在括号中的变量,由于是在子shell中,所以对于脚本剩下的部分是不可用的. 父进程, 也就是脚本本身, 将不能够读取在子进程中创建的变量, 也就是在子shell中创建的变量.

{ } 代码块,即一个匿名函数,但其中定义的变量在后面依然可用

5.在正则表达式中表示范围 [a-z]

分析前边命令的输出, 并将输出作为后边命令的输入. 这是一种产生命令链的好方法.

管道是进程间通讯的一个典型办法, 将一个进程的stdout放到另一个进程的stdin中. 标准的方法是将一个一般命令的输出, 比如cat或者echo, 传递到一个 "过滤命令"(在这个过滤命令中将处理输入)中, 然后得到结果.

当然输出的命令也可以传递到脚本中.

# 字符范围必须被""引用起来来阻止产生单字符的文件名.

现在让我们输送ls -l的输出到一个脚本中.

管道中的每个进程的stdout比须被下一个进程作为stdin来读入. 否则, 数据流会阻塞, 并且管道将产生一些非预期的行为.

作为子进程的运行的管道, 不能够改变脚本的变量.

如果管道中的某个命令产生了一个异常,并中途失败,那么这个管道将过早的终止. 这种行为被叫做broken pipe, 并且这种状态下将发送一个SIGPIPE 信号.

>| 强制重定向(即使设置了noclobber 选项--就是-C 选项).这将强制的覆盖一个现存文件.

|| 逻辑或操作 ;用在两个命令之间的时候,表示在前一个命令结束时,若返回值为 false,继续执行下一个命令

&& 逻辑与;用在两个命令之间的时候,表示在前一个命令结束时,若返回值为 true,继续执行下一个命令

# 在第2个循环之后, 将在某些时候执行. 

-  在所有的命令内如果想使用选项参数的话,前边都要加上"-".

5.注:使用-开头的文件名和变量名可能会出现一些问题

+ 一个命令或者过滤器的选项标记.

^ 正则表达式中表示行首

$IFS 用来做一些输入命令的分隔符, 默认情况下是空白

其中命令的很多细节并没有研究的很彻底,以后见到用到具体的命令再具体分析吧

}

我要回帖

更多关于 c在a和b后执行 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信