欢迎光临本博客,本博客内容仅代表我个人观点,不针对任何单位和个人,文章中如有不对之处,欢迎批评指正。文章均系个人原创,转载麻烦请注明出处,Enjoy!
常用shell脚本参数含义
[
2008/09/03 17:58 | by askwan ]
2008/09/03 17:58 | by askwan ]
为了写出友好和易于使用的脚本,这里总结了一下,目前大部分脚本程序最经常使用的参数
,和“国际”接轨,以后要慢慢培养自己这方面的能力
-a 显示所有对象
-c 设置一个具体数值
-d 指定一个目录
-D debug模式运行
-e 扩展一个对象
-f 指定一个从中读取数据的文件
-h 限制脚本帮助信息
-i 忽略大小写
-l 产生一个长格式化输出
-n 非交互式模式
-o 指定输出文件
-q 安静模式运行
-r 递归式处理文件和目录
-s 静默模式运行
-v 打印版本信息
-y 默认yes回答所有过程
能想到的就这些 欢迎补充
,和“国际”接轨,以后要慢慢培养自己这方面的能力
-a 显示所有对象
-c 设置一个具体数值
-d 指定一个目录
-D debug模式运行
-e 扩展一个对象
-f 指定一个从中读取数据的文件
-h 限制脚本帮助信息
-i 忽略大小写
-l 产生一个长格式化输出
-n 非交互式模式
-o 指定输出文件
-q 安静模式运行
-r 递归式处理文件和目录
-s 静默模式运行
-v 打印版本信息
-y 默认yes回答所有过程
能想到的就这些 欢迎补充
在bash中,$* 与 $@ 都表示shell所有的参数值,
实例一:
test1
[root@localhost askwan]# ./test1 askwan askwan1 askwan2 askwan3
再看示例2:
test2
[root@localhost askwan]# ./test2 askwan1 askwan2 askwan3 askwan4
从这点知道,其实$*和$@最大的区别就是,前者把脚本所有参数都当作一个整体的字符串,后者则以空格符区别对待各个参数。
实例一:
test1
[root@localhost askwan]# ./test1 askwan askwan1 askwan2 askwan3
when use the $* : askwan askwan1 askwan2 askwan3
when use the $@ : askwan askwan1 askwan2 askwan3
when use the $@ : askwan askwan1 askwan2 askwan3
再看示例2:
test2
[root@localhost askwan]# ./test2 askwan1 askwan2 askwan3 askwan4
$* parameter #1 = askwan askwan1 askwan2 askwan3
$@ parameter #1 = askwan
$@ parameter #2 = askwan1
$@ parameter #3 = askwan2
$@ parameter #4 = askwan3
$@ parameter #1 = askwan
$@ parameter #2 = askwan1
$@ parameter #3 = askwan2
$@ parameter #4 = askwan3
从这点知道,其实$*和$@最大的区别就是,前者把脚本所有参数都当作一个整体的字符串,后者则以空格符区别对待各个参数。
$# 与 ${!#}
[
2008/09/03 17:02 | by askwan ]
2008/09/03 17:02 | by askwan ]
$#和${!#}细微区别
示例:
[root@localhost askwan]# chmod a+x test
[root@localhost askwan]# ./test 1 2 3 4 5
[root@localhost askwan]# ./test
在有参数情况下,两者都表示最后一个参数的值;
在参数为零时,前者即$#显示零,而${!#}的值表示shell脚本名称。
示例:
[root@localhost askwan]# chmod a+x test
[root@localhost askwan]# ./test 1 2 3 4 5
the last parametes is 5 .
the last parametes is 5 .
the last parametes is 5 .
[root@localhost askwan]# ./test
the last parametes is 0 .
the last parametes is ./test .
the last parametes is ./test .
在有参数情况下,两者都表示最后一个参数的值;
在参数为零时,前者即$#显示零,而${!#}的值表示shell脚本名称。
bash参数超过十个的变化
[
2008/09/03 11:50 | by askwan ]
2008/09/03 11:50 | by askwan ]
bash shell在9个参数一下都可以直接以$1,$2.....$9来赋值,超过十个参数就有些变化了
,要以${10},${11}.....这样给参数赋值
示例
,要以${10},${11}.....这样给参数赋值
示例
引用
[root@server ~]# ./test 10 20 30 40 50 60 70 80 90 100 200
the 10th pamameters is 100.
the 11th parameters is 200.
the sum is 300
the 11th parameters is 200.
the sum is 300
总结一下mysql调优相关的大方向:
1.服务器硬件,软件,网络环境
磁盘读/写速度,CPU主频周期,内存带宽,网络连接速度,网络带宽等;
2.主配置文件my.cnf的各项设置
log-bin要不要打开,禁用dns查询,超时时间,文件系统外部锁,table_cache,Query_cache等
3.应用程序和基础架构
mysql复制,mysql集群,负载均衡,读写分离,大表的切割(水平切割和垂直切割)等
4.存储引擎,SQL查询,索引
根据应用选择合适存储引擎(Myisam OR INODB OR Other),设计好SQL和索引(mysql explain)
应用各种工具分析系统性能瓶颈,有针对性的调节,欢迎继续补充
1.服务器硬件,软件,网络环境
磁盘读/写速度,CPU主频周期,内存带宽,网络连接速度,网络带宽等;
2.主配置文件my.cnf的各项设置
log-bin要不要打开,禁用dns查询,超时时间,文件系统外部锁,table_cache,Query_cache等
3.应用程序和基础架构
mysql复制,mysql集群,负载均衡,读写分离,大表的切割(水平切割和垂直切割)等
4.存储引擎,SQL查询,索引
根据应用选择合适存储引擎(Myisam OR INODB OR Other),设计好SQL和索引(mysql explain)
应用各种工具分析系统性能瓶颈,有针对性的调节,欢迎继续补充
mysqladmin的extended-status指令查看mysql各状态值
[
2008/08/29 11:01 | by askwan ]
2008/08/29 11:01 | by askwan ]
rrdtool画的图
[
2008/08/27 16:54 | by askwan ]
2008/08/27 16:54 | by askwan ]
MYSQL数据库系统的设计架构
[
2008/08/27 09:04 | by askwan ]
2008/08/27 09:04 | by askwan ]





