Bash中的特殊变量和位置参量】的更多相关文章

位置参量:向脚本或函数传递的参数,可以被set命令设置.重置和清空. 1.$$ 当前Shell的PID 2.$- 当前Shell的选项,如果是交互式shell,应该包含字符i,例如$ echo $-himBH 3.$? 最后一个命令的退出状态值,0-成功,非0-不成功 4.$! 最后一个放入后台作业的PID 5.$0 当前执行脚本的名字 6.$1-9, ${10-xx} 第1~9,10~xx个位置参量 7.$# 位置参量的个数 8.$* 位置参量的整体字符串 9.$@ 位置参量数组 注意:$*和…
bash 中的特殊变量 变量 说明 ------------------------------------ $0 当前脚本的文件名 $n 第n个位置参数 $* 传递给脚本或函数的所有参数,$*会将这些参数视为一个整体 $@ 传递给脚本或函数的所有参数,$@会将所有参数当作同一字符串中的多个独立的单词 $# 脚本运行时携带的参数个数 $? 最近一个命令的退出状态码 $$ 当前shell的进程ID(PID) $! 最近一个后台命令的PID !! 执行上一条命令…
在 Bash 里,可以通过 export 命令查看当前 Shell 进程的环境变量,这些环境变量一些是 Bash 自己创建的,还有一些是 Bash 从父进程继承来的,然而需要注意的是,父进程传给 Bash 的环境变量不一定是我们想象的那样. 在 C 语言层面,环境变量是存放在一个名为 environ 的全局变量里的,这个变量的值是一个字符串的数组,像这样: {"foo=1", "bar=2"} 在父子孙一辈辈进程中传递的就是这么个数组,我们嘴里说的环境变量的原貌其实…
$_ 有好几个功能,我们最常用的是用它来获取“刚刚执行过的命令的最后一个参数”这个功能,比如下面这样: $ ls ~/Downloads/very/long/dir/  # ls 到某个目录看看有没有我们想要的文件 file1 file2 needed_file $ cd $_ # 如果有,就进入到那个文件夹,$_ 让你省去了不少键盘敲击数 Bash manual 中对 $_ 的这个功能的描述只有一句话: expands to the last argument to the previous…
1.向尾部方向的最小化删除 (%) $pathname="/usr/bin/local/bin"$echo ${pathname%/bin*}/usr/bin/local 2.向尾部方向的最大化删除(%%) $pathname="/usr/bin/local/bin"$echo ${pathname%%/bin*}/usr 3.向首部方向的最小化删除(#) $pathname=/home/lilliput/jake/.bashrc$echo ${pathname#/…
http://blog.csdn.net/jiankun_wang/article/details/4336285 一.$*和$@ 首先介绍两个极其相似.很难区分的特殊参数$*和$@,先看如下输出: wangjk@wangjiankun:~$ cat test.sh      1  #!/bin/bash      2      3  echo "/$@ is $@"      4  echo "/$* is $*"      5 wangjk@wangjianku…
首先,我们想到的会是 export(等价于 declare -x)命令: $ export | grep 'declare -x _=' 没有找到,那么结论就是 _ 不是环境变量?当然没那么简单,否则本篇文章就该结束了.别忘了还有 env(或者 printenv)命令: $ env | grep '_=' _=/usr/bin/env 这下怎么办,_ 到底是不是环境变量?谁说的对?然而下面还有更诡异的: $ bash -c "export | grep 'declare -x _='"…
bash 中的变量 Linux command line 笔记 变量无需声明,自动创建 var=abc #变量a赋值为字符串abc var="hello world" #字符串里有空格赋值要加引号 var="hello world $var" #任何可以扩展成字符串的都可以赋给变量 var=$(ls -l *.md) # 输出结果为字符串的命令 var=$(5*5) #运算符 var="hello\nworld" #转义字符串序列,例子中的\n…
在bash中,如果循环在一个子shell中运行,那么在循环中对循环外面的变量的更改将在循环退出后不可见.像下面的例子: #!/bin/sh python run.py | while read line do echo $line let "var=var+1" done echo $var 最后面的echo输出的var仍然是1.原因是while循环位于管道中,这意味着在运行过程中,while循环实际是位于一个新的SHELL中的,while循环中的var变量和文件开头定义的var变量是…
(大讲台:国内首个it在线教育混合式自适应学习) 统中进行日常运维或者是编写脚本时,变量是再熟悉不过的了,但这些变量都有哪些类型,具体的用法又有哪些差异呢?本文整理分享给大家: 一.bash变量类型: 本地变量 局部变量 环境变量 位置变量 特殊变量(内置) 二.本地变量: varname=value:作用域为整个bash进程可以使用: 变量命名规范: 1. 只能含字母.数字和下划线,并且以字母和下划线开头 2. 最好不要跟系统已有的环境变量重名 3. 见名知意 三.局部变量: local va…