用户工具

站点工具


linux_basic:bash_shell:a1_01_introduction

使用 () 操作符来定义一个子shell

利用子shell生成一个独立的进程
子shell本身就是独立的进程。可以使用 () 操作符来定义一个子shell:
pwd;
(cd /bin; ls);
pwd;
当命令在子shell中执行时,不会对当前shell有任何影响;所有的改变仅限于子shell内。例如,
当用 cd 命令改变子shell的当前目录时,这种变化不会反映到主shell环境中。

反引号引用

反引用(有些人们也称它为反标记)的方法也可以用于存储命令输出:
cmd_output=`COMMANDS`
例如:
cmd_output=`ls | cat -n`
echo $cmd_output
反引用与单引号可不是一回事,它位于键盘的 ~ 键上

有意思的重复脚本/命令的简便写法

repeat(){
  while true
  do
    $@ && return
  done
}
#单行写法
repeat() { while true; do $@ && return; done }
#说明:函数 repeat ,它包含了一个无限 while 循环,该循环执行以参数形式(通过 $@访问)传入函数的命令。如果命令执行成功,则返回,进而退出循环。
#
#更快的做法
#在大多数现代系统中, true 是作为/bin中的一个二进制文件来实现的。这就意味着每执行一次 while 循环,shell就不得不生成一个进程。如果不想这样,可以使用shell内建的“ : ”命令,它总是会返回为0的退出码:
repeat() { while :; do $@ && return; done }

#增加延时执行
repeat() { while :; do $@ && return; sleep 30; done }


linux_basic/bash_shell/a1_01_introduction.txt · 最后更改: 2020/09/25 21:49 (modify by Amos)