美文网首页
shell变量

shell变量

作者: 狼之足迹 | 来源:发表于2016-08-15 19:42 被阅读64次

shell执行

#!/bin/bash    #shebang指定解释器

执行方式

lang@liang:~/linux/shell$ chmod u+x test.sh
lang@liang:~/linux/shell$ ./test.sh

lang@liang:~/linux/shell$ /bin/bash ./test.sh

lang@liang:~/linux/shell$ . ./test.sh

lang@liang:~/linux/shell$ source ./test.sh

对比,前两种方式执行方式实质一样,后两种实质相同

shell执行过程解释:

lang@liang:~/linux/shell$ ls

1.当前shell   fork产生子进程,子进程exec执行ls.

2.父进程(shell) wait等待子进程执行ls(exec)

3.子进程运行成功或者终止,父进程恢复运行.

对于后两种方式   .   ./ls      source ls

父进程直接在当前shell下执行命令,然后返回

其他问题:

将命令用(),引起来,那么shell 会直接fork出子shell来执行()中的命令.且可以多个命令;分割.

cd .. ; ls -l

特别强调

因为shell默认执行是fork--exec执行命令.

那么,我们在脚本中的cd .. 等改变状态的命令影响的只是子进程环境,并不改变父进程.

此时,如果有需求,那么.可以以  source执行  脚本

shell变量

命令

env

set

printenv

打印当前环境变量.

本地变量,只存在于当前shell,set命令显示当前shell定义的所有变量(本地变量以及环境变量)

shell中定义本地变量

VARNAME=value

export VARNAME  将本地变量导出为环境变量

unset VARNAME 删除本地变量或者环境变量

变量引用

shell变量都是字符串.对变量的引用使用$符号.

字符串拼接能力

lang@liang:~/linux/shell$ echo $SHELL

/bin/bash

lang@liang:~/linux/shell$ echo $SHELLaaa

lang@liang:~/linux/shell$ echo ${SHELL}aaa

/bin/bashaaa

变量名代换*  ? []

通配符 * :匹配0或多个任意字符

?:匹配一个任意字符

[若干字符]:匹配[]中的任意一个字符的一次出现

命令带换: `  或者 $()

lang@liang:~/linux/shell$ DATE=`date`

lang@liang:~/linux/shell$ echo $DATE

2016年 08月 15日 星期一 19:29:23 CST

lang@liang:~/linux/shell$ DATE=$(date)

lang@liang:~/linux/shell$ echo $DATE

2016年 08月 15日 星期一 19:30:20 CST

转义字符

lang@liang:~/linux/shell$ touch \$\ \$

lang@liang:~/linux/shell$ ll

-rw-rw-r-- 1 lang lang    0 8月  15 19:32 $ $

创建文件名 以 -  开头时可以如下处理

lang@liang:~/linux/shell$ touch ./-hell

lang@liang:~/linux/shell$ ll ./-hell

-rw-rw-r-- 1 lang lang 0 8月  15 19:32 ./-hell

lang@liang:~/linux/shell$ touch -- -lll

lang@liang:~/linux/shell$ ll

-rw-rw-r-- 1 lang lang    0 8月  15 19:35 -lll

单引号

shell脚本中单引号都可以界定字符串.而非字符,shell中单引号内的所有字符保持字面值.

双引号

双引号用于保持引号内suuoyou字符的字面值.(回车也不例外).除了以下

$变量值

``仍然表示命令替换

\$表示$的字面值

\代表转义.

相关文章

  • shell基础在工作中的应用

    shell编程基础:1. shell变量:环境变量、特殊变量、用户自定义变量2. shell输入输出3 shell...

  • Linux Shell:基础知识和Shell变量

    摘要:Linux,Shell 整理Shell内容要点: Shell基础知识 Shell变量的类型 Shell变量赋...

  • Shell常用命令(md格式方便阅读和复制粘贴)

    Shell Shell中的变量 系统变量 自定义变量 自定义变量规则 Shell特殊变量 运算符 条件判断 基本语...

  • shell第11章shell脚本

    什么是shell? Bash shell: 什么是shell脚本? 变量的介绍: 普通变量介绍: 环境变量介绍: ...

  • shell变量详解

    本文转载自Hello,Barry的shell变量详解1 shell变量基础shell变量是一种很“弱”的变量,默认...

  • linux shell中常见的变量含义解释

    linux shell中常见变量含义解释:变量说明:$$Shell本身的PID(ProcessID)$!Shell...

  • Shell特殊变量

    Shell特殊变量:Shell $0, $#, $*, $@, $?, $$和命令行参数 特殊变量列表 变量 含...

  • Shell变量

    Shell 变量 变量的分类 本地变量 全局变量 shell 内置变量 本地变量 本地变量就是:在当前系统的某个环...

  • bash环境变量

    环境变量是全局变量 自定义变量是局部变量 bash:可以进入当前shell的子shell(当前shell指的是当前...

  • shell

    shell变量 变量类型:局部变量局部变量在脚本或命令中定义,仅在当前shell实例中有效,其他shell启动的程...

网友评论

      本文标题:shell变量

      本文链接:https://www.haomeiwen.com/subject/zzwusttx.html