shopt设置参数 glob通配符扩展 alias设置别名 多行单条命令

2015-06-10 21:37:00
admin
原创 4442
摘要:shopt设置参数 glob通配符扩展 alias设置别名 多行单条命令

一、shopt设置参数

1、shopt相比set更加强大,推荐使用;

2、子shell不继承父shell的参数配置,比如errexit、xtrace;

3、普通条件语句不影响shell返回值,短路条件语句影响shell返回值;


shopt设置或取消shell选项,不带参数显示所有选项状态:

-s enable (set) each OPTNAME,设置选项;
-u disable (unset) each OPTNAME,取消选项;

-p 打印所有选项;


常用选项:

login_shell,是否登陆shell;

expand_aliases,是否使用aliases;

cdspell,cd时细微的目录错误自动更正;


set命令使用:

set -e,如果脚本执行命令返回非零,脚本立即退出;

set -u,如果使用未定义变量则报错;

set -o history,开启命令记录;

set +o history,关闭命令记录;

set -o xtrace,显示执行的命令,每个加号表示一次调用深度;

set +o xtrace,不显示执行的命令;

set -x,等价于set -o xtrace;

set -o,显示所有选项;


二、glob通配符扩展

扩展成功则扩展后传递给命令,否则直接传递给命令,当然有些命令禁止扩展,注意事项:

1、不匹配以点号开始的文件,即隐藏文件;

2、find禁止扩展,比如find . -name *.sh


匹配规则:

*匹配0或多个字符

?匹配1个字符

[abc]匹配括号里的任意一个字符

[!abc]或者[^abc]匹配非括号里的任意一个字符

[a-z]配置a到z的所有字符

{log,gz}匹配log或者gz


示例:

ls *.gz,输出openssl-0.9.8zf.tar.gz

ls *.g?,输出openssl-0.9.8zf.tar.gz

ls *.tar.[a-z][a-z],输出openssl-0.9.8zf.tar.gz

ls *.{log,gz},输出install.log  openssl-0.9.8zf.tar.gz


三、alias设置别名

功能说明:设置命令的别名,alias [别名]=[指令名称];

参  数:若不加任何参数,列出当前所有的别名设置;

特别说明:非交互式shell扩展别名选项默认关闭,非交互式shell不继承别名,单条命令禁止别名使用双引号;


[root@ebs-19233 ~]# alias
alias cp='cp -i'
alias l.='ls -d .* --color=auto'
alias ll='ls -l --color=auto'
alias ls='ls --color=auto'
alias mv='mv -i'
alias rm='rm -i'


四、多行单条命令

shell支持多行单条命令,对称符号自动识别,或者使用强制换行符号。


[root@ebs-19233 ~]# echo "a
b
c"

输出:

a
b
c


[root@ebs-19233 ~]# echo a\
b\
c

输出:

abc

发表评论
评论通过审核之后才会显示。