Shell保留变量
保留变量 Bourne shell保留变量 Bash和 Bourne shell以同一种方法来使用特定的shell变量。某些情况下,Bash为变量分配一个默认的值。下表给出一个简单的shell变量的概览: 保留的 Bourne shell 变量 变量名字 定义 CDPATH 一个由冒号分割的目录列表作为内建命令 cd 的搜索路径。 HOME 当前用户的home目录;默认为内建命令 cd 。这个变量的值同样被~扩展使用。 IFS 分割域的一个字符的列表;用于shell把词分开作为扩展。 MAIL 如果这个变量设成一个文件名并且 MAILPATH 变量没有设置,Bash在指定文件中通知用户邮件的到达。 MAILPATH 一个用冒号分隔的文件名列表,shell周期性地从这个文件里检测新邮件。 OPTARG getopts 内建命令处理的最后的选项参数的值。 OPTIND 最后一个由 getopts 内建命令处理的选项参数的索引号。 PATH 一个用冒号分隔的目录列表,shell从这些目录里寻找命令。 PS1 主要提示符。默认值是 “’\s-\v\$ ‘”。 PS2 次要提示符。默认值是 “’> ‘”。 Bash保留变量 这些变量是设置好的或者被Bash使用的,但是其他shell通常不会对它们进行特殊处理。 保留Bash变量 变量名 定义 auto_resume 这个变量控制shell如何与用户交互和作业控制。 BASH 用于执行当前Bash实例的全路径。 BASH_ENV 如果这个变量在Bash调用执行一个shell脚本时已被设置,它的值将被展开并用作在执行脚本前读取的启动文件名。 BASH_VERSION 当前Bash实例的版本号。 BASH_VERSINFO 一个只读变量数组,它的成员保存这个Bash实例的版本信息。 COLUMNS select 内建命令来决定打印选择列表时终端宽度。在收到 SIGWINCH 信号时自动设置。 […]
使用bash用10种不同的方法计数到11
使用bash用10种不同的方法计数到11 #!/bin/bash # Counting to 11 in 10 different ways. n=1; echo -n “$n ” let “n = $n + 1” # let “n = n + 1” also works. echo -n “$n ” : $((n = $n + 1)) # “:” necessary because otherwise Bash attempts #+ to interpret “$((n = $n + 1))” […]
特殊Bash变量
特殊Bash变量 字符 定义 $* 展开为位置参数,从1开始。当扩展发生在双引号时,它展开成一个单独的词,每个参数的值由 IFS 特殊变量的第一个字符分隔。 $@ 展开为位置参数,从1开始。当在双引号里展开时,每个参数展开成独立的词。 $# 把位置参数展开为十进制数字。 $? 展开成最近执行的前台管道程序的退出状态。 $- 一个连字符展开为当前选项标志 内部命令集 或者那些shell自己的集(如-i)。A hyphen expands to the current option flags as specified upon invocation, by the set built-in command, or those set by the shell itself (such as the -i). $ 展开成shell的进程ID。 $! 展开成最近在后台(异步)执行的命令的进程ID。 $0 展开成shell或者shell脚本名。 $_ 下划线变量在shell启动时设置,包含shell的绝对文件名或者作为参数列表被执行的脚本。随后,它展开为前一个命令扩展后的最后一个参数。它同样设置为每个执行程序的全路径,放在那个命令的输出环境中。当检查邮件时,这个参数保存邮件文件的名字。The underscore variable is set […]
Bash命令行编辑的快捷键
Bash命令行编辑的快捷键 history 显示命令历史列表 Shortcuts Comment ↑ 显示上一条命令 ↓ 显示下一条命令 !num 执行命令历史列表的第num条命令 !! 执行上一条命令 !ls 执行最后一个以ls开头的命令 Ctrl+r 然后输入若干字符,开始向上搜索包含该字符的命令,继续按Ctrl+r,搜索上一条匹配的命令 ls !$ 执行命令ls,并以上一条命令的参数为其参数 Ctrl+a 移动到当前行的开头 Ctrl+e 移动到当前行的结尾 Esc+b 移动到当前单词的开头 Esc+f 移动到当前单词的结尾 Ctrl+l 清屏 Ctrl+u 删除命令行中光标所在处之前的所有字符(不包括自身) Ctrl+k 删除命令行中光标所在处之后的所有字符(包括自身) Ctrl+d 删除光标所在处字符 Ctrl+h 删除光标所在处前一个字符 Ctrl+y 粘贴刚才所删除的字符 Ctrl+w 删除光标所在处之前的字符至其单词头(以空格、标点等为分隔符) Esc+w 删除光标所在处之前的字符至其单词尾(以空格、标点等为分隔符) Ctrl+t 颠倒光标所在处及其之前的字符位置,并将光标移动到下一个字符 Esc+t 颠倒光标所在处及其相邻单词的位置 Ctrl+(x u) 按住Ctrl的同时再先后按x和u,撤销刚才的操作 Ctrl+s 挂起当前shell Ctrl+q 重新启用挂起的shell […]