●Shell中关于set这个命令的用法是怎样的?
set这个命令主要用来设置参数变量,这在输出以空格分隔的值时很有用。
●Shell中关于shift这个命令的用法是怎样的?
顾名思义,shift命令是用来移位的,具体来说,它可以让参数变量向后移1位,比如,$2变成$1,$3变成$2,等等。需要注意的是,移位一次都会丢掉一个参数值。
●Shell中关于trap这个命令的用法是怎样的?
trap命令用来指定当接收到某种信号时采取什么行动,可用来处理中断信息。其基本格式为:
trap 命令动作 信号
最常用的几种信号:
1)HUP(1) 挂起;通常当终端断开连接时,或用户退出登录时发生。
2)INT(2) 中断;通常在键入Ctrl+C时发生。
3)QUIT(3) 退出;通常在键入Ctrl+\时发生。
4)ABRT(6) 放弃;通常因遇到某种严重执行错误时发生。
5)ALRM(14) 警告;通常由于计时器超时而发生。
6)TERM(15) 终止;通常当系统关闭时发生。
如果将trap设置为默认动作,可以在命令处设置为-,如果要忽略该信号,可将命令设置为空串’ ‘。
●Shell中关于unset这个命令的用法是怎样的?
unset命令用来在环境变量表中删除一个变量,它对系统定义的只读变量没有作用。
●在Shell中出现$((…))是什么意思?
$((…))的表示是与expr同义的,用于表达式求值,但是它比expr更新,效率也更高。例如:
x=0
x=$(($x+1))
注意其与$(…)的区别,$(…)是用来得到括号内所执行的命令的输出结果。
●在Shell中什么是参数扩展(Parameter Expansion)?
参数扩展是Shell中比较有特色的一项内容,它为参数的设置提供了额外的方法。通常形式是${参数}。常用的方法有:
1)${param:-default} 如果param为空,则设置其值等于default。
2)${#param} 求得param的长度。
3)${param%word} 从末尾开始,删除param中与word匹配的最近部分,然后返回其余。
4)${param%%word} 从末尾开始,删除param中与word匹配的最远部分,然后返回其余。
5)${param#word} 从起首开始,删除param中与word匹配的最近部分,然后返回其余。
6)${param##word} 从起首开始,删除param中与word匹配的最远部分,然后返回其余。
●在Shell中<<有什么特殊作用?
注意这个<<,它的作用很有意思,其后跟随的是一个特殊的字符序列,此后的内容就看作是从文件或键盘输入的一样,在这些内容的末尾再加上一个与开头相同的字符序列。这在Shell中称为“here document”。例如:
cat <
This is my book
!nomeaning!
输出为:
This is my book