shell脚本常用参数】的更多相关文章

shell 脚本 常用参数 #!/bin/sh # 在脚本第一行脚本头 # sh为当前系统默认shell,可指定为bash等shell sh -x # 执行过程 sh -n # 检查语法 (a=bbk) # 括号创建子shell运行 basename /a/b/c # 从全路径中保留最后一层文件名或目录 dirname # 取路径 $RANDOM # 随机数 $$ # 进程号 source FileName # 在当前bash环境下读取并执行FileName中的命令 # 等同 . FileNam…
shell脚本常用技巧 1.获取随机字符串或数字 ~]#echo $RANDOM | md5sum | cut -c 1-6 ~]#openssl rand -base64 4 | cut -c 1-6 ~]#uuidgen | cut -c 1-6 2.获取随机数 ~]#echo $RANDOM | cksum | cut -c 1-6 ~]#openssl rand -base64 4 | chsum | cut -c 1-6 ~]#date +%N | cut -c 1-6 3.自定义颜色…
平常在写shell脚本都是用$1,$2....这种方式来接收参数,然而这种接收参数的方式不但容易忘记且不易于理解和维护.Linux常用的命令都可指定参数名和参数值,然而我们怎样才能给自己的shell脚本也采用参数名和参数值这样的方式来获取参数值呢?而不是通过$1,$2这种方式进行获取.下面的例子定义了短参数名和长参数名两种获取参数值的方式.其实是根据getopt提供的特性进行整理而来. #!/bin/sh #说明 show_usage="args: [-l , -r , -b , -w]\ [-…
Shell脚本是Linux开发工作中常用的工具,但是我一直没有找到一个适合自己的简明扼要的HandBook.在工作过程中整理了一下,贴在这里已备查看. 1           Shell中的特殊符号 1.1           $  美元符号.用来表示变量的值.如变量NAME的值为Mike,则使用$NAME就可以得到“Mike”这个值. 1.2          #  井号.除了做为超级用户的提示符之外,还可以在脚本中做为注释的开头字母,每一行语句中,从#号开始的部分就不执行了. 1.3    …
一个很不错的bash脚本编写教程,至少没接触过BASH的也能看懂   建立一个脚本 Linux中有好多中不同的shell,但是通常我们使用bash (bourne again shell) 进行shell编程,因为bash是免费的并且很容易使用.所以在本文中笔者所提供的脚本都是使用bash(但是在大多数情况下,这些脚本同样可以在 bash的大姐,bourne shell中运行).  如同其他语言一样,通过我们使用任意一种文字编辑器,比如nedit.kedit.emacs.vi  等来编写我们的s…
曾经我刚开始学习 shell 脚本时,除了知道用 echo 输出一些信息外,并不知道其他方法,仅仅依赖 echo 来查找错误,比较难调试且过程繁琐.效率低下.本文介绍下我常用的一些 shell 脚本调试方法,希望能对 shell 的初学者有所帮助. sh 命令调试选项(推荐) 选项 说明 -c 从-c后的字符串中读取命令. -n 检查是否存在语法错误,但不会实际执行. -x 将执行的每一条命令和结果依次打印出来. -v 执行过的脚本命令打印到标准输出. 使用方法: 字符串读取脚本. $ sh -…
一.shell脚本概述和入门 (1)shell脚本是一个命令行解释器,它接收应用程序/用户命令,然后调用操作系统内核 (2)shell脚本的常用执行方式: 第一种:采用bash或sh+脚本的相对路径或绝对路径(不用赋予脚本+x执行权限) sh(bash) test.sh 第二种:采用输入脚本的绝对路径或相对路径执行脚本(必须具有可执行权限+x) ./test.sh 注意:第一种执行方法,本质是bash解析器帮你执行脚本,所以脚本本身不需要执行权限.第二种执行方法,本质是脚本需要自己执行,所以需要…
作为一个运维人员编写Shell脚本是很平常的,一个格式好的脚本不仅赏心悦目,后期自己和别人也易于维护. 下面的脚本就是我自己的shell编写格式,如下: [root@mini05 -]# cat template.sh #!/bin/sh ################ Version Info ################## # Create Date: -- # Author: Zhang # Mail: zhang@xxxx.com # Version: 1.0 # Attenti…
    所谓的位置参数(positional parameters)指的也就是Shell脚本的命令行参数(command-line arguments).在Shell函数里,它们同时也可以是函数的参数.各参数都由整数来命名.基于历史的原因,当其超过9,就应该用大括号把数字框起来:         echo first arg is $1         echo tenth arg is ${10}       假设你想知道某个用户正使用的终端是什么,你当然可以直接使用who命令,然后再输出中慢…
格式化日期yyyy-mm-dd hh:mm:ss显示 date "+%Y-%m-%d %H:%M:%S" 将内容写入到新文件 echo "hello">a.txt 将内容追加到文件末尾(默认换行) echo "shell">>a.txt 赋予指定的用户可以使用root权限(使用root登录): vi /etc/sudoers ##如果root没有权限修改该文件则授权写和执行权限:chmod u+w /etc/sudoers和ch…
参数左移什么意思呢?这个参数指的是在运行脚本时,跟在脚本名后面的参数,前面已经讲过,可以使用$#来获取参数的个数,使用$*来获取所有的参数,而参数左移的含义是这样的:有个指针指向参数列表第一个参数,左移的意思就是每读一个参数,指针就指向第二个参数,就好像参数向左移动了,于是乎,这样就可以读取每个参数的值了,在循环结构中特别常用. 下面一个例子: #!/bin/bash #文件名:test.sh tot=0 while [ $# -gt 0 ] do echo "参数为"$1 #注意这里…
1.shell中的$默认变量    $n           $1 表示第一个参数,$2 表示第二个参数 ...    $#           命令行参数的个数    $0           当前程序的名称    $?           前一个命令或函数的返回码,返回0代表成功    $*            以"参数1 参数2 ... " 形式保存所有参数    $@          以"参数1" "参数2" ... 形式保存所有参数…
参考: https://stackoverflow.com/questions/7389416/postgresql-how-to-pass-parameters-from-command-line https://blog.csdn.net/dazuiba008/article/details/79268537  (推荐) ######################################数据库表结构###################################### # n…
linux shell 指令 诸如-d, -f, -e之类的判断表达式: 文件比较运算符-e filename  如果 filename存在,则为真  [ -e /var/log/syslog ]-d filename  如果 filename为目录,则为真  [ -d /tmp/mydir ]-f filename  如果 filename为常规文件,则为真  [ -f /usr/bin/grep ]-L filename  如果 filename为符号链接,则为真  [ -L /usr/bi…
$$Shell本身的PID(ProcessID)$!Shell最后运行的后台Process的PID$?最后运行的命令的结束代码(返回值)$-使用Set命令设定的Flag一览$*所有参数列表.如"$*"用「"」括起来的情况.以"$1 $2 … $n"的形式输出所有参数.$@所有参数列表.如"$@"用「"」括起来的情况.以"$1" "$2" … "$n" 的形式输出所有参…
#!/bin/sh 1 取脚本参数 $# 参数个数$0 当前脚本名$1 第1个参数$n 第n个参数$* 所有参数$@ 所有参数$? 上个命令的状态$$ 当前pid 2 日期 $ dateWed Mar 27 17:27:18 CST 2019$ date +"%Y-%m-%d %H:%M:%S"2019-03-27 17:28:27$ date +"%Y-%m-%d %H:%M:%S" --date="-1 day"2019-03-26 17:2…
用maven工程打包时,会将数据库连接一并打进去,如果需要经常修改数据库连接,则需要打开jar包然后修改配置,这样很麻烦耗时并且容易出错. 因此需要将数据库配置放入项目外,这样修改数据库时去固定的配置文件中修改即可,shell脚本源码如下: #/bin/bash printf "\n+++++++++++++++++++ %-30.30s +++++++++++++++++++" 'startserver Begin!' echo "" PROJECTDIR=$PW…
-e filename 如果 filename存在,则为真 -d filename 如果 filename为目录,则为真  -f filename 如果 filename为常规文件,则为真 -L filename 如果 filename为符号链接,则为真 -r filename 如果 filename可读,则为真  -w filename 如果 filename可写,则为真   -x filename 如果 filename可执行,则为真 -s filename 如果文件长度不为0,则为真 -h…
1.变量检查,判空 a.直接变量判断  if [ ! $1 ];then ..empty..fi b.变量通过" "引号引起来  if [ ! -n "$1" ];then ..empty...fi 2.脚本开头一般要执行环境变量 第一行:   . ~/.bashrc…
test.sh #!/bin/bash echo "脚本名$0" echo "第1个参数$1" echo "第2个参数$2" echo "第3个参数$3" echo "第4个参数$4" echo "第5个参数$5" echo "第6个参数$6" echo "第7个参数$7" echo "第8个参数$8" echo "第…
该笔记主要整理了一些常见的脚本操作命令,大致如下(持续补充中): 1. while.for循环 1. while.for循环 #!/bin/bash # while循环 v_start_date=${v_start_date} v_end_date=${v_end_date} while [ ${v_start_date} -le ${v_end_date} ] do .. done # for循环 # 方法一: # 日期变量定义 v_array_w=("20200429" "…
本章命令: 1 2 3 4 5 6 grep cut sort uniq seq tr 1.grep 作用:过滤文本内容 选项 描述 -E :--extended--regexp 模式是扩展正则表达式(ERE) -i :--ignore--case 忽略大小写 -n: --line--number 打印行号 -o:--only--matching 只打印匹配的内容 -c:--count 只打印每个文件匹配的行数 -B:--before--context=NUM 打印匹配的前几行 -A:--aft…
逻辑控制 if 语法:注意空格 a=1b=2if [ $a == $b ]then    echo "a==b"elif [ $a -gt $b ]then    echo "a>b"elif [ $a -lt $b ]then    echo "a<b"else    echo "a!=b"fi…
文件名: test.sh #!/bin/bash para="para: "; while [ $# -ge 2 ] ; do case "$1" in --aa) para="${para} argument $1 = $2;"; shift 2;; --bb) para="${para} argument $1 = $2;"; shift 2;; *) echo "unknown parameter $1.&qu…
Shell是一种编程语言, 它像其它编程语言如: C, Java, Python等一样也有变量/函数/运算符/if语句/循环控制/… 但在开始之前, 我想先理清Shell语言与Shell之间的关系. Shell与Shell语言 上面说了Shell是一种编程语言但你可能也听说过: sh/bash/csh/zsh/…它们也叫Shell, 实际上这里所说的Shell是一种应用程序, 它负责解释执行你编写的Shell脚本, Mac默认就自带了sh/bash/csh/zsh/tcsh/ksh, 你可以这样…
关于shell脚本的基本语法 整理于:2014-03-31,何俭飞,mymladdr@sina.com 一.执行 1.shell脚本如果要被执行,一般地必须要有执行权限"x"(除了使用特殊的执行方式不需要外) 2.shell脚本执行的方式有以下几种: ①--参数式执行1:/bin/sh createFiles.sh(不需要x权限),简写为"sh createFiles.sh" ②--参数式执行2:/bin/bash createFiles.sh(不需要x权限),简写…
# 井号 (comments) 这几乎是个满场都有的符号#!/bin/bash 井号也常出现在一行的开头,或者位于完整指令之后,这类情况表示符号后面的是注解文字,不会被执行. # This line is comments. echo \"a = $a\"     # a = 0 由于这个特性,当临时不想执行某行指令时,只需在该行开头加上 # 就行了.这常用在撰写过程中. #echo \"a = $a\"  # a = 0 如果被用在指令中,或者引号双引号括住的话,…
公司说不准用云笔记了,吓得我赶紧把笔记贴到博客上先..... 近3年前的了,只有一半的章节,后面的没空记录了.... 第1章 可以cat /proc/meminfo文件来观察Linux系统上虚拟内存的当前状态 ipcs命令专门用来查看系统上的当前共享内存页面 Ubuntu使用一个表来管理在系统开机时要自动启动的进程,在/etc/init.d目录,可将开机时启动或停止某个应用的脚本放在这个目录下.这些脚本通过/etc/rcX.d目录下的入口启动,这里X代表运行级(run level) Linux才…
Linux的Shell种类众多,这里我们关注的重点是Bash. 基本语法 环境变量$PATH IO重定向:  以<改变标准输入 如:tr -d '\r' < dos-file.txt 以>改变标准输出  如:tr -d '\r' < dos-file.txt > UNIX-file.txt(如果>的目的文件不存在,将自动创建,若存在,将覆盖原文件) 以>>附加到文件(文件末尾追加)  若文件不存在,则自动创建,若存在,则在文件末尾追加 以|建立管道  前一个…
1. 前言 大家好,我是安果! 在 Web 开发中,经常会遇到「端口被占用」的场景 常规解决方案是: 使用 lsof -i 命令查询占用端口的进程 PID 利用 kill -9 PID 干掉目标进程 虽然只有 2 步,我也觉得很繁琐,即:既要记住命令,又要输入两次 本篇文章将编写 Shell 脚本,来实现一键干掉端口占用 2. 实现 相比 Python,Shell 脚本常用于处理偏操作系统底层的业务,简单.开发效率高 以 Mac OSX 为例,在本地创建一个 .sh 文件,实现步骤如下: 2-1…