Linux Shell学习笔记
2014-04-09 13:00
211 查看
现在Linux登录后默认是使用bash,如果使用其他(一般也没有如果)shell,需要在脚本的一开始指明使用的是bash。应当在开始注明脚本使用的语言。
#!/bin/bash
shell特殊符号:
("")双引号:用于标记多个特殊符号,但是对$,\,`,!符号例外
('')单引号:作用同上,但是可以标记""所不能的特殊符号
(``)反引号 一般用来执行命令
(\)反斜杠:转义符号,用于标记单个特殊符号.
参数:
$0 Linux命令名
$n 命令行参数
$* 由号码1开始的所有的命令行参数
$@ 分别访问命令行参数
$# 命令参数的个数
变量替换:
参数置换的变量,变量var
var=${para-word}
若存在para,var=para 否则,var=word
var=${para=word}
若存在para,var=para 否则,var=word,para=word
var={para?word}
若存在para,var=para 否则,显示word错误,并退出
var=${para+word}
若存在para,var=word 否则,-
基本语句
expr命令将把一个算术表达式作为参数,通常形式如下:
expr [数字] [操作符] [数字]
if - then - else
if command1
then
command2
command3
fi
条件语句test [ ],注意在[ 的后面和 ]符号的前面要有一个空格。
测试字符串间的关系
str1 = str2 当两个串有相同内容、长度时为真
str1 != str2 当串str1和str2不等时为真
-n str1 当串的长度大于0时为真(串非空)
-z str1 当串的长度为0时为真(空串)
str1 当串str1为非空时为真
测试两个整数之间的关系
int1 -eq int2 两数相等为真
int1 -ne int2 两数不等为真
int1 -gt int2 int1大于int2为真
int1 -ge int2 int1大于等于int2为真
int1 -lt int2 int1小于int2为真
int1 -le int2 int1小于等于int2为真
3>有关文件的测试
-r file 用户可读为真
-w file 用户可写为真
-x file 用户可执行为真
-f file 文件为正规文件为真
-d file 文件为目录为真
-c file 文件为字符特殊文件为真
-b file 文件为块特殊文件为真
-s file 文件大小非0时为真
-t file 当文件描述符(默认为1)指定的设备为终端时为真
4>复杂的条件测试(and 、or 、not)
-a 与
-o 或
! 非
空命令
Bsh中用 : 代表空命令,就是充个数,什么都不做
case语句
case value in
pattem 1)
command
command;;
pattem 2)
command
command;;
....
pattem)
command;
esac
while 循环
while command
do
command
command
… …
done
for语句的结构如下:
for variable in arg1 arg2 … argn
do
command
command
… …
done
实例:
1.打印1-100
3.10的阶乘
4.腾讯笔试
求ip_input中,出现次数最多的ip
ip_input
#!/bin/bash
shell特殊符号:
("")双引号:用于标记多个特殊符号,但是对$,\,`,!符号例外
('')单引号:作用同上,但是可以标记""所不能的特殊符号
(``)反引号 一般用来执行命令
(\)反斜杠:转义符号,用于标记单个特殊符号.
参数:
$0 Linux命令名
$n 命令行参数
$* 由号码1开始的所有的命令行参数
$@ 分别访问命令行参数
$# 命令参数的个数
变量替换:
参数置换的变量,变量var
var=${para-word}
若存在para,var=para 否则,var=word
var=${para=word}
若存在para,var=para 否则,var=word,para=word
var={para?word}
若存在para,var=para 否则,显示word错误,并退出
var=${para+word}
若存在para,var=word 否则,-
基本语句
expr命令将把一个算术表达式作为参数,通常形式如下:
expr [数字] [操作符] [数字]
if - then - else
if command1
then
command2
command3
fi
条件语句test [ ],注意在[ 的后面和 ]符号的前面要有一个空格。
测试字符串间的关系
str1 = str2 当两个串有相同内容、长度时为真
str1 != str2 当串str1和str2不等时为真
-n str1 当串的长度大于0时为真(串非空)
-z str1 当串的长度为0时为真(空串)
str1 当串str1为非空时为真
测试两个整数之间的关系
int1 -eq int2 两数相等为真
int1 -ne int2 两数不等为真
int1 -gt int2 int1大于int2为真
int1 -ge int2 int1大于等于int2为真
int1 -lt int2 int1小于int2为真
int1 -le int2 int1小于等于int2为真
3>有关文件的测试
-r file 用户可读为真
-w file 用户可写为真
-x file 用户可执行为真
-f file 文件为正规文件为真
-d file 文件为目录为真
-c file 文件为字符特殊文件为真
-b file 文件为块特殊文件为真
-s file 文件大小非0时为真
-t file 当文件描述符(默认为1)指定的设备为终端时为真
4>复杂的条件测试(and 、or 、not)
-a 与
-o 或
! 非
空命令
Bsh中用 : 代表空命令,就是充个数,什么都不做
case语句
case value in
pattem 1)
command
command;;
pattem 2)
command
command;;
....
pattem)
command;
esac
while 循环
while command
do
command
command
… …
done
for语句的结构如下:
for variable in arg1 arg2 … argn
do
command
command
… …
done
实例:
1.打印1-100
#!/bin/sh for i in `seq 1 100` do echo "$i" done2.求和 1-$1
#!/bin/bash loop=0 #for i in `seq 1 $1` for ((i=1;i<=$1;++i)) do loop=`expr $loop + $i` done echo $loop
3.10的阶乘
#!/bin/sh x_t=1 all=1 while [ $x_t -lt 11 ] do all=`expr $all \* $x_t` echo "$all" x_t=` expr $x_t + 1 ` done echo "after is $all";
4.腾讯笔试
求ip_input中,出现次数最多的ip
ip_input
219.217.49.14 175.43.4.87 87.48.98.1 59.73.38.25 219.217.50.14 59.92.48.32 219.217.49.14 59.72.38.142 59.73.38.25 219.217.49.14 219.217.49.14 175.43.4.87 87.48.98.1 59.73.38.25 219.217.50.14 59.92.48.32 219.217.49.14 59.72.38.142 59.73.38.25 59.72.38.142 59.73.38.25 59.72.38.142 59.73.38.25 59.72.38.142 59.73.38.25 59.72.38.142 59.73.38.25 59.72.38.142 59.73.38.25 59.72.38.142 59.73.38.25 59.72.38.142 59.73.38.25 59.72.38.142 59.73.38.25 59.72.38.142 59.73.38.25 59.72.38.142 59.73.38.25 59.72.38.142 59.73.38.25 59.72.38.142 59.73.38.25 59.72.38.142 59.73.38.25 59.72.38.142 59.73.38.25tecent.sh
#!/bin/sh sort ip_input | uniq -c | sort -n| tail -1 | awk '{printf $2}'5.目录下的文件,每行均是一个数字,求出其最大值
awk `{if($1>tmp){print $1;tmp=$1}} END {printf "max is %d\n", $tmp}`
相关文章推荐
- Linux Shell 《abs_guide》 学习笔记(3)
- Linux Shell 学习笔记(二) 命令
- linux Shell学习笔记第二天
- [暑假学习笔记]二、Linux Shell 脚本攻略2
- Linux Shell学习笔记五
- [暑假学习笔记]三、Linux Shell 脚本攻略3
- Linux Shell编程学习笔记一:shell简介
- linux shell学习笔记1(特殊符号)
- Linux Shell 学习笔记1:Shell程序的运行及基本介绍
- Linux Shell 学习笔记(二)
- Linux shell初步学习笔记
- Linux Shell学习笔记2:基本的bash shell命令
- linux Shell学习笔记第四天
- linux Shell学习笔记第三天
- linux Shell学习笔记最后一节,温故与知新
- Linux Shell学习笔记(二)
- linux shell编写以日期时间为文件名的脚本学习笔记
- Linux Shell学习笔记1
- Linux Shell学习笔记七
- linux shell学习笔记2(变量和参数)