Sunday, December 31, 2017

键盘常用符号英文

键盘常用符号英文:
~      tilde / swung dash
!       exclamation mark
?       question mark
@     at sign
#       crosshatch / sharp / hash 
$       dollar sign
%      percent sign
^       caret
&      ampersand
*       asterisk / star
()      parentheses / round brackets
[]      brackets / square brackets
{}     braces / curly brackets
<>    chevrons / angle brackets
_       underscore
-        hyphen / dash / minus sign
"       quotation mark / double quote 
'        apostrophe / single quote 
`       grave accent / backquote
.        period / dot / point
,        comma
:        colon
;        semicolon
...      ellipsis
|        bar / pipe / vertical bar
/        slash / forward slash
\        backslash


Sunday, December 17, 2017

shell script

数值运算:  $((计算式)), total = $((${var1}*${var2}))

/path/to/scriptname opt1 opt2 opt3 opt4
             $0                 $1    $2    $3    $4

$# :代表后接的参数“个数”,以上表为例这里显示为“ 4 ”;
$@ :代表“ "$1" "$2" "$3" "$4" ”之意,每个变量是独立的(用双引号括起来);
$* :代表“ "$1c$2c$3c$4" ”,其中 c 为分隔字符,默 认为空白键, 所以本例中代表“ "$1 $2 $3 $4" ”之意。

关于某个文件名的“文件类 型”判断
test -e filename         该“文件名”是否存在
-f                               该“文件名”是否存在且为文件
-d                              该“文件名”是否存在且为目录
-L                              该“文件名”是否存在且为一个链接文件

关于文件的权限侦测
test -r filename         该“文件名”是否存在且具有“可读”的权限
-w                             该“文件名”是否存在且具有“可写”的权限
-x                              该“文件名”是否存在且具有“可执行”的权限
-u                              该“文件名”是否存在且具有“SUID”的属性
-g                              该“文件名”是否存在且具有“SGID”的属性
-k                              该“文件名”是否存在且具有“Sticky bit”的属性
-s                               该“文件名”是否存在且为“非空白文件”

两个文件之间的比较
test file1 -nt file2      判断 file1 是否比 file2 新
-ot                             判断 file1 是否比 file2 旧
-ef                             判断 file1 与 file2 是否为同一文件,可用在判断 hard link 的判定上

关于两个整数之间的判定
test n1 -eq n2            两数值相等 (equal)
-ne                             两数值不等 (not equal)
-gt                              n1 大于 n2 (greater than)
-lt                               n1 小于 n2 (less than)
-ge                             n1 大于等于 n2 (greater than or equal)
-le                              n1 小于等于 n2 (less than or equal)

判定字串的数据
test -z string              判定字串是否为 0? 若 string 为空字串,则为 true
test -n string              判定字串是否为非0? 若 string 为空字串,则为 false, -n 亦可省略
test str1 == str2         判定 str1 是否等于 str2 ,若相等,则回传 true
test str1 != str2          判定 str1 是否不等于 str2 ,若相等,则回传 false

多重条件判定
test -r filename -a -x filename    两条件同时成立, 才回传 true
test -r filename -o -x filename    两条件任何一个成立,就可回传 true
test ! -x file                                 当 file 不具有 x 时,回传 true

判断符号 [ ],功能类似test
在中括号内的每个元件都需要有空白键来分隔;
在中括号内的变量,最好都以双引号括号起来;
在中括号内的常数,最好都以单或双引号括号起来。
[ -z "${HOME}" ]      判断${HOME} 这个变量是否为空


条件判断式
if [ 条件判断式一 ]; then
      当条件判断式一成立时,可以进行的指令工作内容;
elif [ 条件判断式二 ]; then
      当条件判断式二成立时,可以进行的指令工作内容;
else
      当条件判断式一与二均不成立时,可以进行的指令工作内容;
fi


case ..... esac 判断
case $变量名称 in
      "第一个变量内容")
            程序段
            ;;
      "第二个变量内容")
            程序段
            ;;
       *)
            不包含第一个变量内容与第二个变量内容的其他程序执行段
            exit 1
            ;;
esac


while do done, until do done (不定循环)
当 condition 条件成立时,就进行循环,直 到 condition 的条件不成立才停止
while [ condition ]
do             <==do 是循环的开始!
      程序段落
done         <==done 是循环的结束


当 condition 条件成立时,就终止循环, 否则就持续进行循环的程序段
until [ condition ]
do
      程序段落
done


for...do...done (固定循环)
for var in con1 con2 con3 ...
do
      程序段
done


for...do...done 的数值处理
for (( 初始值; 限制值; 执行步阶 ))
do
      程序段
done