8种机械键盘轴体对比
本人程序员,要买一个写代码的键盘,请问红轴和茶轴怎么选?
shell是一个作为用户与Linux系统间接口的程序,它允许用户向操作系统输入需要执行的命令。名路径FreeBSD 5.2.1Linux 2.4.22Mac OS X 10.3Solaris 9Bourne shell/bin/sh.链接至bash链接至bash.
Bourne-again shell/bin/bash可选的...
C shell/bin/csh链接至tcsh链接至tcsh链接至tcsh.
Korn shell/bin/ksh.
TENEX C shell/bin/tcsh....重定向输出
重定向输入
管道
脚本和语法
第一行
#!告诉系统同一行上紧跟在它后面的那个参数是用来执行本文件的程序。1!/bin.sh
语法
变量
使用变量之前通常并不需要事先为它们做出声明。
变量赋值时,等号两边不能有空格。
通过在变量名前加一个$符号来访问它的内容。1
2a=123
echo $a
环境变量
当一个shell脚本程序开始执行时,一些变量会根据环境设置中的值进行初始化。这些变量通常用大写字母做名字,以便它们和用户在脚本程序里定义的变量区分开来。环境变量说明$HOME当前用户目录
$PATH搜索地址
$PS1命令提示符
$PS2二级提示符
$IFS输入域分隔符
$0shell脚本的名字
$#传递给脚本的参数个数
$$shell脚本的进程号
参数变量
如果脚本程序在调用时带有参数,一些额外的变量就会被创建。环境变量说明$1,$2,…脚本程序的参数
$*列出所有
条件
test或[
在一些老版本的UNIX shell中,test命令调用的是一个外部程序。可以使用which test来检查执行的是哪一个test命令。1
2
3
4
5
6
7
8
9if test -f fred.c
then
...
fi
if [ -f fred.c ]
then
...
fi字符串比较结果string1 = string2
string1 != string2
-n strng如果字符串不为空则结果为真
-z string如果字符串为Null(一个空串)则结果为真算术比较结果expression1 -eq expression2如果两个表达式相等则结果为真
expression1 -ne expression2如果两个表达式不等则结果为真
expression1 -gt expression2如果expression1大于expression2则结果为真
expression1 -ge expression2如果expression1大于等于expression2则结果为真
expression1 -lt expression2如果expression1小于expression2则结果为真
expression1 -le expression2如果expression1小于等于expression2则结果为真
!expression如果表达式为假则结果为真文件条件测试结果-d file如果是目录
-e file如果文件存在
-f file如果是普通文件
-g file如果set-group-id位被设置
-r file如果文件刻度
-s file如果文件大小不为0
-u file如果set-user-id位被设置
-w file如果文件可写
-x file如果文件可执行
控制结构
if语句1
2
3
4
5
6
7
8if condition
then
statements
elif
statements
else
statements
fi
for语句1
2
3
4for variable in values
do
statements
done
while语句1
2
3while condition do
statements
done
until语句1
2
3
4until condition
do
statements
done
case语句1
2
3
4
5
6
7
8
9
10
11case variable in
pattern [|pattern]...) statements;;
pattern [|pattern]...) statements;;
...
esac
case "$timeofday" in
yes) echo "Good Morning";;
no ) echo "Good Afternonn";;
...
esac
AND和OR语句1
2statement1 && statement2 && statement3
statement1 || statement2 || statement3
语句块1
2
3get_confirm && {
grep -v "$cdcatnum" $tracks_file > $temp_file
}
函数
必须在调用一个函数之前先对它进行定义。当一个函数被调用时,脚本程序的位置参数($*,$@,$#,$1等)会被替换为函数的参数。当函数执行完毕后,这些参数会恢复为它们先前的值。1
2
3function_names(){
statements
}
命令
break命令
用于跳出循环
:冒号命令
冒号(:)命令是一个空命令。用于简化条件逻辑,相当于true的别名,比true快。1
2
3
4
5无限循环
while :
条件设置
: ${var:=value}
continue命令
继续循环
.命令
点(.)命令用于在当前shell中执行命令。点命令实在当前上下文中执行命令,所以可以改变当前脚本中的变量参数。1. ./shell_script
echo命令
输出字符串1echo -n "string to output"
eval命令
对参数进行求值1
2
3
4
5foo=10
x=foo
eval y='$'$x
echo $y
输出10
命令的执行1
2
3
4
5旧的语法,反引号
`command`
# 新的语法
$(command)
调试脚本程序
跟踪脚本程序中复杂错误的主要方法是设置各种shell选项。为此,你可以在调用shell时加上命令行选项,或是使用set命令。命令行选项set选项说明sh -nset -n只检查语法错误,不执行命令
sh -vset -v在执行命令之前回显它们
sh -xset -x在处理命令之后回显它们
sh -uset -u如果使用了未定义的变量,就给出出错消息