
shell
文章平均质量分 55
longshenlmj
这个作者很懒,什么都没留下…
展开
-
shell的几个实际小例子
1. 写一个脚本,利用循环计算10的阶乘#!/bin/sh factorial=1 for a in `seq 1 10`do factorial=`expr $factorial \* $a`done echo "10! = $factorial"注:上面有一行,for a in `seq 1 10`,其中seq 1 10 ,转载 2013-04-15 21:41:25 · 921 阅读 · 0 评论 -
shell重定向(大于号,小于号,左右,2>&1,&)
1. 标准输入,标准输出与标准错误输出Linux下系统打开3个文件,标准输入,标准输出,标准错误输出。标准输入:从键盘输入数据,即从键盘读入数据。标准输出:把数据输出到终端上。标准错误输出:把标准错误输出到终端上。默认的标准输入指的是键盘,默认的标准输出与标准错误输出指的是屏幕或者是终端。系统为这三个文件分配了文件标识符fd(file descripter).在Linu原创 2014-05-05 16:51:38 · 14488 阅读 · 0 评论 -
awk:快速入门(简单实用19例+鸟哥书内容)
这篇很好http://manual.blog.51cto.com/3300438/932958以下引自:http://www.cnblogs.com/zhuyp1015/archive/2012/07/11/2586985.htmlawk 也是一个非常棒的数据处理工具!sed常常用于一整个行的处理, awk则比较倾向于一行当中分成数个『栏位』(或者称为一个域,也就是转载 2015-01-04 16:39:34 · 2800 阅读 · 0 评论 -
shell的date
使用方式 : date [-u] [-d datestr] [-s datestr] [--utc] [--universal] [--date=datestr] [--set=datestr] [--help] [--version] [+FORMAT] [MMDDhhmm[[CC]YY][.ss]]说明 : date 可以用来显示或设定系统的日期与时间,在显示方面,使用者可以设定欲显示转载 2013-07-24 14:32:48 · 1141 阅读 · 0 评论 -
shell,python获取当前路径(脚本的当前路径) (aso项目记录)
一获取当前路径:$(cd "$(dirname "$0")"; pwd)12#获取当前脚本所在绝对路径cur_dir=$(cd "$(dirname "$0")"; pwd)等同于cd `dirname $0`; pwdecho $(cd "dirname $0";pwd)是错的,dirname 引起不能用原创 2014-05-06 18:03:40 · 5588 阅读 · 0 评论 -
quartz 时间设置(定时任务scheduler)
quartz用来设置定时任务的作业调度程序。在linux的crontab中用到。格式为: * * * * * * *其从左到右顺序代表 :[秒] [分] [小时] [日] [月] [周] [年] (自己懒得写,摘一篇网上的, 转自:http://www.cnblogs.com/skyblue/p/3296350.html)序号 说明 是否必填 允许填写的值 允许转载 2015-06-23 17:34:43 · 2106 阅读 · 0 评论 -
shell的字符串和数字的转化(数字自动做字符串处理,变量名做字符串输出用单引号)
shell里面怎么样把字符串转换为数字?例如:a="024"1,用${{a}}2,用let达到(()) 运算效果。let num=0123;echo $num; 833双括号运算符:a=$((1+2));echo $a;等同于:a=`expr 1 + 2`原创 2013-11-05 15:03:41 · 93131 阅读 · 1 评论 -
shell的if嵌套
shell脚本编写中,if是可以嵌套的, 注意,if条件表达式[]中的空格,以及后面的then就行了 if条件表达式后面的分号“;”可有可无,不影响。代码如下myFile='ctr_result.txt'if [ -e "$myFile" ]; then rm $myFile result_code=$? if [ "$result_code"原创 2015-07-28 18:15:31 · 17113 阅读 · 0 评论 -
shell的数值计算,小数计算
shell脚本中,可以进行数值计算,如加减乘除,通过expr、let、(())等完成,文章介绍:http://blog.youkuaiyun.com/longshenlmj/article/details/14166193但是上面的运算只支持整数。小数计算怎么办?shell中小数计算 通过bc,awk和nawk工具等完成 使用bc的代码如:click=`awk -F"\t" '$1==原创 2015-07-28 18:25:23 · 12401 阅读 · 0 评论 -
一篇详细的linux中shell语言的字符串处理
cut是以每一行为一个处理对象的,这种机制和sed是一样的。(关于sed的入门文章将在近期发布)2 cut一般以什么为依据呢? 也就是说,我怎么告诉cut我想定位到的剪切内容呢?cut命令主要是接受三个定位方法:第一,字节(bytes),用选项-b第二,字符(characters),用选项-c第三,域(fields),用选项-f3 以“字节”定位,给转载 2013-11-04 14:31:52 · 1591 阅读 · 0 评论 -
awk 简单教程
简单,易上手:http://coolshell.cn/articles/9070.html讲的还可以http://www.cnblogs.com/repository/archive/2011/05/13/2045927.html这里对awk -F做一个简单的介绍: awk -F"\t" '{print $3}' test.txt等同于awk -F'\t' '{print $原创 2013-02-19 15:20:13 · 746 阅读 · 0 评论 -
shell的date日期循环方法:日期格式转时间戳计算,再将时间戳转回日期格式
1,日期对象转时间戳current_day 2,计算增量的时间戳,即循环每步的增量one_day 3,循环体计算,日期变量加增量后重新赋值自己 4,时间戳转回日期格式后输出current_day=2015-07-17end_day=2014-01-01#步骤1timestamp_current=`date -d "$current_day" +%s`timestamp_end=`dat原创 2015-07-31 17:12:12 · 2872 阅读 · 0 评论 -
shell命令执行hive脚本(hive交互,hive的shell编程)
Hive执行方式Hive的hql命令执行方式有三种:1、CLI 方式直接执行2、作为字符串通过shell调用hive –e执行(-S开启静默,去掉”OK”,”Time taken”)3、作为独立文件,通过shell调用 hive –f或hive –i执行执行方式1键入“hive”,启动hive的cli交互模式。Set可以查看所有环境设置参数,并可以重设。其他命令如, Use datab原创 2016-01-19 15:15:42 · 60196 阅读 · 4 评论 -
python的subprocess:子程序调用(调用执行其他命令);获取子程序脚本当前路径问题
python subprocess用于程序执行时调用子程序,通过stdout,stdin和stderr进行交互。 Stdout子程序执行结果返回,如文件、屏幕等 Stdin 子程序执行时的输入,如文件 Stderr错误输出python subprocess类似os的部分功能,可以说是优化的专项功能类, os调用子程序参见http://blog.youkuaiyun.com/longshenlmj/art原创 2015-04-21 18:48:50 · 28515 阅读 · 2 评论 -
shell的date命令:使用方法,以及小时、分钟的计算
时间和字符的转化:可以通过date 的输出格式控制实现,但是月日年,和小时分秒必须分开处理,否则会无法识别。such as 2013-10-30 20:12:59或者20131030 20:12:59注意:1,二者之间必须用空格分割;2,年月日作为整体容易识别,格式十分灵活,可以随意写。但小时分秒必须用冒号:分开,否则无法识别。 字符串转时间的命令:2011111前一天 d原创 2013-11-05 15:00:19 · 41893 阅读 · 0 评论 -
linux下数学运算器:expr命令(shell中完成数学运算)
expr用法 expr命令一般用于整数值,但也可用于字符串。一般格式为: expr argument operator argument expr也是一个手工命令行计数器。 $expr 10 + 10 20 $expr 1500 + 900 2500 $expr 30 / 3 10 $expr 30 / 3 / 2 5 (注意运算符左右都有空格)转载 2013-11-04 13:56:52 · 2244 阅读 · 0 评论 -
linux的wc -l 命令统计文件少一行(一般是windows文件)
先简单介绍wc(Word Count)命令的功能为统计指定文件中的字节数、字数、行数,并将统计结果显示输出格式:wc file命令参数:-c 统计Bytes数(字节数),并显示文件名-l 统计行数:使用换行符‘\n’作为行结束标志,实际是统计换行符个数-m 统计字符数。这个标志不能与 -c标志一起使用。-w 统计字数。一个字被定义为由空白、跳格或换行字符分隔的字符串。原创 2015-01-14 11:57:14 · 14178 阅读 · 1 评论 -
shell脚本格式的几点注意:格式严格,空格不能随便出现(一写就记不住)
比如 bin=`dirname "$0"`如果写成bin =`dirname "$0"`就执行错了。可以看到结果不一样例子:#!/usr/bin/bash#set environmentsource /etc/profilebin=`dirname "$0"`echo $binecho "$bin"echo '$bin'echo ${bin}echo "原创 2013-11-01 17:21:48 · 5314 阅读 · 0 评论 -
shell判断文件是否存在
1. shell判断文件,目录是否存在或者具有权限 2. #!/bin/sh 3. 4. myPath="/var/log/httpd/" 5. myFile="/var /log/httpd/access.log" 6. 7. # 这里的-x 参数判断$myPath是否存在并且是否具有可执行权限 8. if [ ! -x "$myPath"]; then 9. m转载 2013-04-15 17:24:42 · 2014 阅读 · 0 评论 -
shell脚本中调用另一个脚本的三种不同方法(fork, exec, source)
fork ( /directory/script.sh)fork是最普通的, 就是直接在脚本里面用/directory/script.sh来调用script.sh这个脚本.运行的时候开一个sub-shell执行调用的脚本,sub-shell执行的时候, parent-shell还在。sub-shell执行完毕后返回parent-shell. sub-shell从转载 2013-06-25 13:47:13 · 1188 阅读 · 0 评论 -
shell的case语句
case语句格式# vi test.sh:echo "input : "read numecho "the input data is $num"case $num in1) echo "January";; 双分号结束2) echo "Feburary";;5) echo "may" 每个case可以有多条命令 echo "sdfd"转载 2013-06-26 19:16:44 · 1046 阅读 · 0 评论 -
shell的shift用法
位置参数可以用shift命令左移。比如shift 3表示原来的$4现在变成$1,原来的$5现在变成$2等等,原来的$1、$2、$3丢弃,$0不移动。不带参数的shift命令相当于shift 1。非常有用的 Unix 命令:shift。我们知道,对于位置变量或命令行参数,其个数必须是确定的,或者当 Shell 程序不知道其个数时,可以把所有参数一起赋值给变量$*。若用户要求 Shell 在不转载 2013-06-26 20:16:54 · 972 阅读 · 0 评论 -
shell编程控制结构:expr、let、for、while、until、shift、if、case、break、continue、函数、select
1、expr计算整数变量值格式 :expr arg 例子:计算(2+3)×4的值1、分步计算,即先计算2+3,再对其和乘4s=`expr 2 + 3`expr $s \* 42、一步完成计算:expr `expr 2 + 3 ` \* 4 –说明: 运算符号和参数之间要有空格分开; 通配符号(*),在作为乘法运算符时要用\、“”、‘’符号修饰转载 2013-06-26 20:19:47 · 952 阅读 · 0 评论 -
linux,shell脚本set -x的意思
set -xa=10命令执行结果:+ a=10echo $a+ echo 1010 set指令能设置所使用shell的执行方式,可依照不同的需求来做设置 -a 标示已修改的变量,以供输出至环境变量。 -b 使被中止的后台程序立刻回报执行状态。 -C 转向所产生的文件无法覆盖已存在的文件。 -d Shell预设会用杂凑表记忆使用过的指令,原创 2013-07-26 14:20:50 · 7650 阅读 · 0 评论 -
linux的string操作(字符串截取,长度计算)
按指定的字符串截取1、第一种方法:${varible##*string} 从左向右截取最后一个string后的字符串${varible#*string}从左向右截取第一个string后的字符串${varible%%string*}从右向左截取最后一个string后的字符串${varible%string*}从右向左截取第一个string后的字符串“*”只是一个通配符可以不要转载 2013-11-04 14:30:17 · 6413 阅读 · 0 评论 -
hadoop的find
find [起始目录] 寻找条件 操作 :find PATH OPTION [-exec COMMAND { } \;]根据给的option作为寻找条件,在给定目录PATH中,对其下子目录中的文件进行递归搜索。一般形式:find pathname -options [-print -exec -ok ...]pathname: 所查找的目录路径。例如用.表示当前目录,用/表示系统根目录转载 2013-05-17 15:36:11 · 5890 阅读 · 1 评论 -
shell脚本调用python脚本的路径问题
[deve_test_user@A3-Tracker-redis-deve script]$ vim testobseve.sh 1 file_path=`dirname $0` 2 echo $file_path 3 4 testfile="$file_path/observereport" 5 python $testfile/test.pytest.原创 2013-11-22 18:07:25 · 9365 阅读 · 0 评论 -
shell脚本里面相互调用时路径不要用pwd获取
场景:脚本 observerReport.sh 里面调用 mergerReport.sh,observerReport.sh在script/目录, mergerReport.sh在下一级子目录script/merge里,此时,如果mergerReport.sh里面用pwd生成路径,并不会是 script/merge,而是当前脚本的执行路径,也就是script。所以要用 dirname原创 2013-11-22 17:51:29 · 4494 阅读 · 0 评论 -
dos2unix(windows脚本文件放到unix下运行要注意)
在windows下编写的shell脚本文件,直接放到linux下运行,是不行的。infiniDB的倒库脚本文件load.sh,将tbl文件导入infiniDB,怎么运行不成功,不建job。运来,是windows 的文件不能放到linux下直接执行。vi编辑器打开文件,发觉每一行的最后有浅蓝色的字符'^M'。DOS下的文本文件是以\r\n作为断行标志的,表示成十六进制就是0D 0A。而U原创 2014-01-06 16:06:23 · 5795 阅读 · 0 评论 -
shell的case语句简述(shell的流控制)
1、if then else 语句if then else语句的基本格式如下:if 条件1then 命令1elif 条件2then 命令2else 命令3fiif语句以if开头,而以fi结束,在shell中的控制流结构的分支语句都是像这样开头跟结束的语句相反反过来,如下面的case语句,以case开头,以esac结束。elif即C语言的else if的意思。转载 2013-06-26 20:11:53 · 1301 阅读 · 0 评论 -
Shell script 传参数处理(默认变量)
1. $# 传递到脚本的参数个数2. $* 以一个单字符串显示所有向脚本传递的参数。与位置变量不同,此选项参数可超过9个3. $$ 脚本运行的当前进程ID号4. $! 后台运行的最后一个进程的进程ID号5. $@ 与$#相同,但是使用时加引号,并在引号中返回每个参数6. $- 显示shell使用的当前选项,与set命令功能相同7. $? 显示最后命令的退出状态。0表示没有错原创 2013-10-25 19:49:12 · 3264 阅读 · 0 评论 -
/dev/null 2>&1的意思(可以直接参考shell重定向那篇,/dev/null是空设备)
路还长 别太狂 以后指不定谁辉煌2>&1 和 &> 的解释Linux的IO输入输出有三类Standard Input 代码 0Standard Output 代码 1Standard Error 代码 2ls thereisno 1> out.txt 标准输出重定向 也可以不加1写成 ls thereisno > out.txtls thereisno 2> out转载 2013-11-11 11:21:46 · 1465 阅读 · 0 评论 -
转义字符\(在hive+shell以及java中注意事项):正则表达式的转义字符为双斜线,split函数解析也是正则
转义字符将后边的字符转义,各个语言中都用应用,如java、python、sql、hive、shell等等。如sql中 "\"" "\'" "\t" "\n"sql中直接输出 " ' tab键 换行键转义字符的一般应用直接用\加上转义的字符就行了,如java和原创 2015-10-10 17:46:55 · 21137 阅读 · 3 评论