shell
xinwendewen
我就是个新手
展开
-
运行sh脚本报错:-bash: ./filename.sh: /bin/bash^M: bad interpreter: No such file or directory
这种情况一般都是由于在win下编写的脚本换行CR LF,而非unix下LF,sh脚本通常以#!/bin/bash开头指定shell类型的路径,此时在linux下则会是#!/bin/bash CR,所以会报错没有/bin/bash^M这个路径解决方法: dos2unix -k -o filename 以实现将DOS格式的文本文件转换成UNIX格式-k:保持输出文件的日期不变 -o:写入到源文件来自原创 2016-07-24 21:37:05 · 1360 阅读 · 0 评论 -
管道
管道command1 | command2两个命令同时运行,第一个命令结果会立即作为第二个命令的输入之处理前一个命令正确的输出右边命令必须能接受标准输入流,若不能接受数据将被丢弃直接运行右边命令参考http://www.cnblogs.com/chengmo/archive/2010/10/21/1856577.html常用场景将命令产生的长输出通过管道传给more实现分页显示more使用参原创 2016-09-06 17:05:07 · 229 阅读 · 0 评论 -
字符串判空有空格报错:binary operator expected
ARG="sd dd"if [ -n ${ARG} ]; then echo 'ARG:' ${ARG}else echo 'ARG is empty.'fi输出:line 27: [: sd: binary operator expectedARG is empty.显然不对解决方法,使用[[ -n ${ARG} ]]或[ -n "${ARG}" ]参考:https:/原创 2016-09-02 14:23:52 · 30636 阅读 · 0 评论 -
shell中将命令结果赋值给变量
shell中将命令结果赋值给变量两种方法,推荐使用后者,支持嵌套,下面两个参考链接写得很清楚了var=`command`var=$(command)参考:http://stackoverflow.com/questions/9449778/what-is-the-benefit-of-using-instead-of-backticks-in-shell-scriptshttp://book.51原创 2016-10-14 10:01:46 · 88778 阅读 · 2 评论 -
eval使用
还可以用eval获取最后一个参数eval echo \$$#原创 2016-10-27 18:26:03 · 606 阅读 · 0 评论 -
获取当前运行脚本所在路径
如果直接运行该脚本pwd命令就可以,但如果是通过其他脚本调用该脚本pwd得到的是前者的路径,需要通过$0(调用该脚本的命令)获取该脚本路径在cd至该路径下pwdSCRIPT_DIR=`dirname "$0"`SCRIPT_DIR=`cd "$SCRIPT_DIR" && pwd`原创 2016-07-26 09:25:56 · 1006 阅读 · 0 评论 -
RPM Package Manager (RPM)
RPM Package Manager (RPM)官网: http://rpm5.org/A package management system for Linux distributionsBRPMs:binary RPMsSRPMs:source RPMs 以.src.rpm结尾常用命令查询软件rpm -qa | grep xxx选项-a:查询所有套件; -q:使用询问模式,当遇到任何问题时原创 2016-09-06 16:37:47 · 416 阅读 · 0 评论 -
获取shell脚本或命令输出
获取shell脚本或命令输出参考http://www.cyberciti.biz/faq/unix-linux-bsd-appleosx-bash-assign-variable-command-output/在脚本中调用shell命令或其他脚本,通过赋值给变量方式获取调用输出,通过$?获取调用返回状态码output=`command`output=`script Path`或output=$(co原创 2016-08-29 18:36:39 · 2452 阅读 · 0 评论 -
shell中调用python脚本
获取py脚本中print内容,同样通过output=python *.py或output=$(python *.py)获取,通过这种方式py中的print不会在控制台输出# test.pyprint 'test'exit('error message')# 运行脚本x=`python test.py`echo $?echo ${x}输出 error message1 test原创 2016-08-30 13:43:43 · 20657 阅读 · 0 评论 -
linux环境变量相关
局部变量只能在定义的进程中可见变量名一般小写,若为带空格字符串需要加单引号,否则会认为是带参数命令执行创建的局部环境变量在子shell中仍不可见原创 2016-08-30 10:28:53 · 339 阅读 · 0 评论 -
Shell Exit command
Shell Exit command几个参考https://bash.cyberciti.biz/guide/Exit_commandhttp://tldp.org/LDP/abs/html/exit-status.htmlexit N命令用于退出当前脚本,并返回一个状态码,标志脚本运行结果若只有exit,将返回上一个命令运行结果状态,相当于exit $?非0返回一般表示脚本运行不成功,可以表原创 2016-08-29 15:04:10 · 811 阅读 · 0 评论 -
Bash中的integer
Bash中的integer • 首先要明确Bash的variable没有type,都是string,如果string只包含数字那么就可以进行算术运算 • 整形范围 64位机器 –9,223,372,036,854,775,808 到 9,223,372,036,854,775,807,超过此范围报错 [: 18446744073692774399: integer express原创 2017-06-21 14:37:56 · 811 阅读 · 0 评论