shell 脚本注意事项】的更多相关文章

设脚本名为test.sh 第一行应该为#! /bin/bash 1.运行和调试的结果是不一样的 调试 sh -x test.sh  这时在计算两个数的和sum=$[$a+$b]时得到sum=3+4,而不是7 运行 要先给脚本加执行权限 ,执行科的结果7 2.在同一行后还有其他命令则需分号隔离:if 条件判断之后 要有 then 关键字,然后才是命令 3.判断条件使用[]括起来,里面的条件和中括号之间要有空格分割,且算术比较不能用运算符只能用-lt,-gt,-le.-ge,-eq,-ne; 若要用…
1.大部分的Linux系统默认配置bash.对比sh,bash扩展了一些命令和参数,并且保留对sh的一些兼容.除了bash.sh还有csh(语法类似C语言).tcsh(csh升级版).ash(适合低内存环境) 2.脚本开头 #!/bin/sh  #!必须有,后面跟上的是shell的路径 3.变量赋值和取值 (1) Bash shell 在默认情况下不会区分变量类型,即使你将整数和小数赋值给变量,它们也会被视为字符串,这一点和大部分的编程语言不同. variable=value  注意:赋值号左右…
1.变量=值 (例如STR=abc)  不用加引号,但此时空格不再是空格字符,特殊字符可用于转义 2.等号两侧不能有空格 3.变量名称一般习惯为大写 4.双引号和单引号有区别,双引号仅将空格脱意,单引号会将所有特殊字符脱意(区别与第一点) 5.unset A 撤销变量 A 6.export 变量名 可把变量提升为全局环境变量,可供其他shell程序使用 7.A=`ls -la` 反引号,运行里面的命令,并把结果返回给变量A. A=$(ls -la) 等价于反引号 if语句里注意事项: 1.if …
https://www.cnblogs.com/tiankongjava/p/6106743.html 今天做个linux定时任务(每晚12点把表汇总). 顺便写个博客记录一下~~ 为什么用linux定时任务,而不是在项目加定时任务呢?原因就是防止因为各种原因项目崩溃..所以就用了更加稳定的linux定时任务(我是这么想的( ^_^ )). 起初我感觉很简单,以为顶多半小时就搞定了,,,结果从10点弄到12点半才搞定(主要是我英语太渣和数据库报错导致)... ︿( ̄︶ ̄)︿废话到此结束-----…
Shell 简介 hell是linux的一外壳,它包在linux内核的外面,为用户和内核之间的交互提供了一个接口 当用户下达指令给操作系统的时候,实际上是把指令告诉shell,经过shell解释,处理后让内核做出相应的动作 系统的回应和输出的信息也由shell处理,然后显示在用户的屏幕上什么是shell脚本 什么是shell脚本? 简单的说,当命令或者程序不在命令行执行,而是通过一个程序文件来执行,这个程序就被称为shell脚本 也就是在shell脚本里内置了多条命令,语句,循环控制,然后将这些…
Linux下(Shell脚本 http://www.jbxue.com/jb/shell/)编程的一些注意事项,如编程风格.命名风格等. 一.常用技巧 ssh user@server bash < /path/to/local/script.sh #ssh到远程服务器执行一个脚本,此命令可以避免将脚本上传到远程服务器 ssh user@host cat /path/to/remotefile | diff /path/to/localfile - #比较远程文件和本地文件的差异 vim scp:…
11.1 使用if-then语句 格式如下 if语句会执行if行定义的那个命令,如果该命令的退出状态码是0,则then部分的语句就会执行,其他值,则不会   1 2 3 4 if command then         commands fi 在要执行的命令结尾加个分号,就能在同一行使用then语句了,格式如下   1 2 3 if command; then     commands fi 11.2 if-then-else语句 格式如下:   1 2 3 4 5 6 if command…
最近公司要弄关于IOS下自动化打包的东西,研究了用命令行的形式来代替手工的方式来处理.即: 用xcodebuild 和xcrun  语法来进行脚本实现.    但由于语法的结构够了,另一个问题产生了,这个语句放在哪里呢? 能否类似于windows 下的bat 东西一样可以双击一下就可以运行命令行呢?      当然另一方面是由于自己对mac 系统下的一些命令不熟练的原因,所以也查找了相关的解决方案,如下:   mac终端下运行shell脚本   1.写好自己的 脚本,比如aa.sh   (如果你…
通过shell获取当前8位日期,并赋给变量,并且使用变量作为文件名,建立文件夹 代码如下: ls_date=`date +%Y%m%d` mkdir ${ls_date} 上面两句代码虽然简单 但是在应用中比较实用 获取日期注意事项:date +%Y%m%d 这个字符串是被英文状态下的ESC下面那个键 获取变量注意事项:必须有$与{变量名}组成…
C程序调用shell脚本共有三种法子 :system().popen().exec系列函数call_exec1.c ,内容为:system() 不用你自己去产生进程,它已经封装了,直接加入自己的命令exec 需要你自己 fork 进程,然后exec 自己的命令popen() 也可以实现执行你的命令,比system 开销小 1.system(执行shell 命令) 相关函数 fork,execve,waitpid,popen表头文件 #include<stdlib.h>定义函数 int syst…
目录: 前言 如何创建一个脚本 脚本调试 变量相关 变量的命令规则 bash中变量的种类 本地变量 环境变量 只读和位置变量 位置变量 查询变量 进程的退出状态与状态码 前言 在linux管理中,shell脚本很是重要,它可以帮助我们完成很多繁琐的工作,专注于更重要的事情上来,脚本的学习也是我们学习linux中所要遇到的比较困难的部分,因为它需要对vim,正则,逻辑,程序化语言有一定的熟悉,shell编程是过程式,解释执行的.它包括各种系统指令的组合,数据存储(变量,数组).表达式.语句. 在s…
许多程序要就对shell脚本中的命令施加一些逻辑控制流程. 结构化命令允许你改变程序执行的顺序.不一定是依次进行的 12.1 使用if-then语句 如下格式: if command then          commands fi if语句会允许if后面的那个命令,如果该命令的退出码的0(代表成功了)位于then部分的命令就会被执行.否则不执行. 例子: #!/bin/bash # if then test if pwd  then echo "pwd success" fi #…
1.函数 函数是一个脚本代码块,你可以为其命名并在代码中任何位置重用.要在脚本中使用该代码块时,只要使用所起的函数名就行了(这个过程称为调用函数).本节将会介绍如何在shell脚本中创建和使用函数 创建函数 function name { commands } name() { commands } 使用函数 [root@localhost advanced_shell_script]# cat test1.sh #!/bin/bash #using a function in a script…
前言:自从大学毕业参加工作以来,接触的开发工作都是在服务端完成,于是接触了比较多的Linux当做开发机使用,或多或少有一些重复性的工作,于是开始琢磨学习一些shell脚本的知识,以便处理这些繁琐的事情. shell种类有很多bash.sh.csh.ksh等,不同的环境下使用的也不同,不过bash应该是使用最广泛了~也是Linux发行版默认的: 主要就是掌握常见的命令以及语法格式吧~然后就可以上手干活了: 命令如下: echo:输出命令到终端 -e:表示对转义字符进行替换 -E:禁止转义 read…
这一年的项目中,有大量的场景需要Java 进程调用 Linux的bash shell 脚本实现相关功能. 从之前的项目中拷贝的相关模块和网上的例子来看,有个别的“陷阱”造成调用shell 脚本在某些特殊的场景下,有一些奇奇怪怪的bug. 大家且听我一一道来. 先看看网上搜索到的例子: package someTest; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamRead…
编写Shell脚本的最佳实践 http://kb.cnblogs.com/page/574767/ 需要记住的 代码有注释 #!/bin/bash # Written by steven # Name: mysqldump.sh # Version: v1. # Parameters : 无 # Function: mysqldump备份mysql # Create Date: -- 缩进有规矩 编码要统一 在写脚本的时候尽量使用UTF-8编码 太长要分行 巧用heredocs 学会查路径 sc…
一.if语句的使用 1)语法规则 if [条件] then 指令 fi 或 if [条件];then 指令 fi 提示:分号相当于命令换行,上面两种语法等同特殊写法:if[ -f"$file1" ];then echo 1;fi 相当于[ -f"$file1" ] && echo 1 2)多分支结构语法 多分支结构:语法 if 条件 then 指令集 elif 条件 #多个 then 指令集 else 指令集 fi 3)比较大小的案例 案例一,交互式…
一.介绍 有时候我们在Linux中运行Java程序时,需要调用一些Shell命令和脚本.而Runtime.getRuntime().exec()方法给我们提供了这个功能,而且Runtime.getRuntime()给我们提供了以下几种exec()方法: Process exec(String command) 在单独的进程中执行指定的字符串命令. Process exec(String[] cmdarray) 在单独的进程中执行指定命令和变量. Process exec(String[] cmd…
Linux中的变量有环境变量和用户自定义变量,关于环境变量,可以查看这篇博客:linux环境变量 本文主要针对的是用户在shell脚本中定义的变量,但是环境变量也可以在shell脚本中使用. 普通变量 注意事项: 变量名以英文字母或者下划线开头,但是不能以数字开头 变量名区分大小写 变量名与等号之间,等号与变量值之间不要有空格 只有在使用变量的值的时候,才在变量名之前加$,其他情况,比如删除.赋值.循环迭代都不用加$ 如果一行只有一条命令,则每一行不用以分号结尾,每一条命令以换行分隔 如果一行有…
首先声明,此系列shell系列博客分为四篇发布,分别是: 基础篇:https://www.cnblogs.com/lsy131479/p/9914747.html 提升篇:https://www.cnblogs.com/lsy131479/p/9914897.html 高级篇:https://www.cnblogs.com/lsy131479/p/9914962.html 面试篇: 6. 条件判断 1.基本语法 [ condition ](注意condition前后要有空格) 注意:条件非空即为…
一.前言 由于工作需要,最近重新开始拾掇shell脚本.虽然绝大部分命令自己平时也经常使用,但是在写成脚本的时候总觉得写的很难看.而且当我在看其他人写的脚本的时候,总觉得难以阅读.毕竟shell脚本这个东西不算是正经的编程语言,他更像是一个工具,用来杂糅不同的程序供我们调用.因此很多人在写的时候也是想到哪里写到哪里,基本上都像是一段超长的main函数,不忍直视.同时,由于历史原因,shell有很多不同的版本,而且也有很多有相同功能的命令需要我们进行取舍,以至于代码的规范很难统一. 考虑到上面的这…
本章内容概要  编程基础  脚本基本格式  变量  运算  条件测试  配置用户环境 7.1 编程基础程序:指令+数据程序编程风格:   过程式:以指令为中心,数据服务于指令   对象式:以数据为中心,指令服务于数据shell程序:提供了编程能力,解释执行 7.1.1 程序的执行方式计算机:运行二进制指令编程语言:   低级:汇编   高级:    编译:高级语言–>编译器–>目标代码     如:java,c#    解释:高级语言–>解释器–>机器代码     如:shell,…
下面是一些简单常用的脚本,工作中可能会用到,记录一下. #!/usr/bin/env bash #变量[=两边不要有空格], 在使用的时候需要用${变量名} 或者是$变量名 name="san" echo $name allName="zhang $name" echo $allName #------------------------------------------------------------------------------- #变量做运算 #…
随着写的SHELL程序越来越多,发现自己每次写都有不同的习惯或者定义了不同的东西,变量名定义得不一样,整个程序缩进不统一,没有注释等问题,等我回过头看这些程序的时候发现很麻烦.所以写了个shell代码规范. 1.1 目的 定义Shell脚本命名和编码规范,统一管理Shell脚本,便于自己和别人查看,提高代码书写速度和美观,暂时只对自己进行约束,其它人只供参考. 1.2 开发工具 shell脚本是个文件,没有开发环境,FC4图形环境下,可用gedit.vi.vim.joe等,推荐使用vim因为这个…
需要养成的习惯如下: 代码有注释 #!/bin/bash # Written by steven # Name: mysqldump.sh # Version: v1.0 # Parameters : 无 # Function: mysqldump备份mysql # Create Date: 2016-08-27 缩进有规矩 编码要统一 在写脚本的时候尽量使用UTF-8编码 太长要分行 巧用heredocs 学会查路径 script_dir=$(cd $(dirname $0) && pw…
最近老大让写一个shell脚本,每天从一个固定IP中取到相应文件,所以想写一个简单的shell脚本命令,供大家学习交流.先做一个简单的例子,先看效果吧, 代码如下: #!/bin/sh #定义一个变量datetime,并赋值 datetime=$1 if [ ! -n "$datetime" ] ;then echo "你没有输入任何文字!!!" else echo "你输入的文字是 $datetime " fi ##注意事项 1.在符号“=”的…
Linux的Shell种类众多,这里我们关注的重点是Bash. 基本语法 环境变量$PATH IO重定向:  以<改变标准输入 如:tr -d '\r' < dos-file.txt 以>改变标准输出  如:tr -d '\r' < dos-file.txt > UNIX-file.txt(如果>的目的文件不存在,将自动创建,若存在,将覆盖原文件) 以>>附加到文件(文件末尾追加)  若文件不存在,则自动创建,若存在,则在文件末尾追加 以|建立管道  前一个…
Shell脚本中时间处理 1.脚本内容 #!/bin/bash #环境变量 #设置环境变量和sql文件格式相符 source /etc/profileexport LD_LIBRARY_PATH="/usr/lib/oracle/12.1/client64/lib" export NLS_LANG="AMERICAN_AMERICA.ZHS16GBK" export LANG=en_US.UTF-8 date=`cat /home/oracle/channelMon…
Shell脚本的条件测试与比较 一.shell脚本的条件测试 通常,在bash的各种条件结构和流程控制结构中都要进行各种测试,然后根据测试结构执行不同的操作,有时也会与if等条件语句相结合,来完成测试判断,以减少程序运行的错误. 执行条件测试表达式后通常会返回"真"或"假",就行执行命令后返回的值为0表示真,非0表示假一样. Bash编程中条件测试常用的语法: 条件测试语法 说明 语法一:test<测试表达式> 这是利用test命令进行测试表达式的方法.…
shell脚本-基础 编程基础 程序是指令+ 数据 程序编程风格: 过程式:以指令为中心,数据服务于指令 对象式:以数据为中心,指令服务于数据 shell 程序提供了编程能力,解释执行. 计算运行二进制指令. 编译执行: 高级语言--> 编译器--> 目标代码 如java,C# 解释执行: 高级语言--> 解释器--> 机器代码 如shell, perl, python 编程逻辑处理方式: 顺序执行 循环执行 选择执行 shell 编程: 过程式.解释执行 编程语言的基本结构: 各…