精华内容
下载资源
问答
  • 怎么写脚本

    2021-04-29 11:30:07
    系统是win10,用的广州超算服务器,想用机器上的软件gromacs,但是得脚本加载软件运行,所以我的问题来了,我需要下个软件sh嘛?[face]monkey:42.gif[/face]求求了,有个大佬拯救我一下
  • mcgs触摸屏上怎么写脚本可以关闭二楼电梯的停靠服务呀? 大佬可以教一下想法嘛?
  • 怎么写脚本实现自动输入密码

    千次阅读 2018-09-16 12:56:23
    这样一个备份脚本好了。 3.在一个ctl脚本。 vi CRM_INFO.ctl load data CHARACTERSET AL32UTF8 Infile ‘/home/crmDate/date/crmDate/CRM_V_P_CUSTINFO.dat’ truncate into table CRM_...

    上周领导让我同步数据,就是从ftp服务器获取文件,然后将dat数据文件同步到数据库中,最初我是用java编写的,但是后来发现数据量太大,根本没法在规定的时间同步过来,后来想到了用Oracle自带的sqlldr命令同步数据,但是发现服务器之间没有建立信任关系,那在连接的时候就必须输入密码,这仅仅通过shell是实现不了的,通过上网查找,需要安装expect才能实现自动输入密码。在此记录下来。

    1、安装expect

    首先安装tcl(下载地址:http://nchc.dl.sourceforge.net/sourceforge/tcl/tcl8.4.11-src.tar.gz

    解压

    tar -zxvf tcl8.4.11-src.tar.gz

    cd tcl8.4.11/unix/

    ./configure

    make && make install

    安装expect(下载地址:http://sourceforge.net/projects/expect/files/Expect/5.45/expect5.45.tar.gz/download

    tar -zxvf expect5.45.tar.gz

    cd expect5.45

    ./configure –with-tclinclude=/tmp/tcl8.4.11/generic –with-tclconfig=/usr/local/lib/

    make && make install

    注:这里的tcl是在/tmp/目录下的。

    检查安装情况

    [root@node1 expect5.45]# expect
    expect1.1>
    expect1.1>

    安装完成.

    2.写一个远程脚本

    vi scp.exp

    !/usr/local/bin/expect

    spawn rm -rf /home/crmDate/date/crmDate

    set timeout 3000

    spawn scp -r ftptest@10.11.20.10:/home/ftptest/ldx/crmDate /home/crmDate/date

    set timeout 10

    expect {

    assword:” {

    set timeout 1000

    set passwderror 1

    send “root\r”

    exp_continue

    }

    es/no)?” {

    send “yes\r”

    exp_continue

    }

    timeout {

    puts “connect is timeout”

    exit 3

    }

    }

    这样一个备份脚本就写好了。

    3.在写一个ctl脚本。

    vi CRM_INFO.ctl

    load data

    CHARACTERSET AL32UTF8

    Infile ‘/home/crmDate/date/crmDate/CRM_V_P_CUSTINFO.dat’

    truncate

    into table CRM_INFO

    fields terminated by ‘^D’ optionally enclosed by ‘”’ trailing nullcols

    (

    CUST_NO “TRIM(:CUST_NO )”,

    (这里是对应的字段)

    DATE “to_date(:DATE,’YYYYMMDD’ )”

    )

    这样就能将备份过来的dat文件导入到数据库中了。

    本文借鉴出处

    https://blog.csdn.net/silenceray/article/details/54582345

    展开全文
  • 如何通过脚本或者程序自启动snmp服务?不用手动配置的
  • ![图片说明](https://img-ask.csdn.net/upload/201508/17/1439823459_446178.jpg) 脚本这些都是怎么用? ![图片说明](https://img-ask.csdn.net/upload/201508/17/1439823692_246453.jpg) 求大神帮助
  • 创建一个名为HelloWorld的新C#脚本,该脚本在Update()方法中每帧将一个int变量加1,然后使用Debug.Log()从0开始将其打印到控制台。 •将其附加到脚本Empty2,然后按“播放”按钮 在控制台窗口中查看输出。
  • 用射线检测、实现:三个Cube,点击其中一个,如果该Cube静止不动、则该Cube就会旋转,其他Cube停止旋转;如果该Cube正在旋转,则本方块停止旋转,其他方块不动。
  • 怎么写Shell脚本

    2018-04-24 19:29:19
    1.创建一个文件touch abc.sh (linux是不识别文件的后缀的,加.sh后缀是为了方便分类,让用户一看就知道是shell脚本)2.编辑文件内容,写入代码#!/bin/shecho "hello world!"(第一行是必须的,制定执行...

     1.创建一个文件

    touch  abc.sh           (linux是不识别文件的后缀的,加.sh后缀是为了方便分类,让用户一看就知道是shell脚本)

    2.编辑文件内容,写入代码

    #!/bin/sh

    echo "hello world!"

    (第一行是必须的,制定执行SHELL的地方,

    第二行开始才是自己写代码的地方.)

    3.改变文件权限,使文件变为执行文件

    chmod + x  abc.sh

    4.执行该文件

    ./abc.sh


    展开全文
  • 怎么写好shell脚本

    2020-04-23 16:45:37
    1.在写脚本之前不知道脚本可以写 2.对部分adb 指令比较熟悉 于是当突然要写脚本, 查资料 还是查资料 然后勉强写出一个勉强能用的 然后又没有需求,不需要写, 半年后又开始写, 疯狂查资料,又写了一个出来...

    写的脚本不多,也不久,但是最近感觉比较有状态,记录一下。

    知识背景:

    1.在写脚本之前不知道脚本可以写

    2.对部分adb 指令比较熟悉

    于是当突然要写脚本,

    查资料

    还是查资料

    然后勉强写出一个勉强能用的

    然后又没有需求,不需要写,

    半年后又开始写,

    疯狂查资料,又写了一个出来,然后去优化了半年前写的那个。

    发现关键其实在于shell指令

    只要你熟悉指令,然后结合C语言往里面尝试,那就容易多了。

    现在已经不怕写脚本了,

    展开全文
  • 更新脚本怎么写

    2021-02-05 14:37:56
    recipe脚本类型 默认/bin/sh. 修改SHELL为其他. 解析案例 .ONESHELL: .PHONY:all all: @for i in {1..9} do echo $$i done 定义.ONESHELL:和不定义是两个执行结果. 脚本解析器 .PHONY:all .ONE..
    1. recipe语法

      • 说明

        • 执行

          • 默认是一行行的执行.
          • .ONESHELL:,recipe一次性执行.
        • recipe脚本类型

          • 默认/bin/sh.
          • 修改SHELL为其他.
        • 解析案例

          .ONESHELL:
          .PHONY:all
          all:
                 @for i in {1..9}
                 do
                     echo $$i
                 done
          
          • 定义.ONESHELL:和不定义是两个执行结果.
        • 脚本解析器

          .PHONY:all
          .ONESHELL:
          SHELL:= $(shell which python)
          all:
                 @for i in range(9):
                     print(i)
          
          • 定义和不定义SHELL是两个结果.
        • 执行模型

          def exeRecipe(target):
             if not target.oneshell:
                 return os.system("\n".join(target.recipes))
          
             for i in target.recipes:
                 ret = os.system(i).returnValue
                 if ret:
                     return ret
             return 0
          
      • 语义

        • 两类

          • makerecipe.
        • recipe

          • 正则
          recipe = "(?<=^%s)(.*)"%(value(".RECIPEPREFIX"))
          
          • 特殊情况target:preq;recipe.
        • rule上下文打断

          • 遇到变量定义或rule.
          • 行首是#,整行被忽略.
        • 条件定义

          .PHONY:all
          .ONESHELL:
          SHELL:= $(shell which python)
          all:
                    @  for i in range(9):
                     print(i);
          ifdef SHELL
                     print(i*i)
          endif
          
          • include,ifeq指令不影响上下文.
      • makerecipe的处理

        • 处理逻辑行

          • 任务

            • 处理recipe行尾的\.
          • 处理

            • \将多行算作一行处理,\\n原封不动传递过去.
            • \\n后是.RECIPEPREFIX,这个字符会被删除.但是空格不删除.
          • \shell

            • bash中,\会按照对应的情况处理.
            • ''保持原字符,""进行拼接转化.
          • recipe多行问题

            • 末尾\会保留.
            • 不想要可定义变量,变量不会留.
            • 根本原因是两个语义对\处理方式不一样.
        • 处理变量

          • 任务

            • 处理变量引用和函数引用.
          • 处理时机

            • 处理target的时候执行.
            • 不需要处理的可能永不扩张.
          • 注意

            • recipe中的变量引用还是shell中的变量引用.
            • shell中的变量引用用$$转义得到源字符.
    2. recipe输出

      • 说明

        • 默认

          • 执行前输出.
        • 规避

          • recipe行首定义@.
          • 传递给shell之前,行首的@会被make删除.
      • @使用

        • @使用场景

          • 本身就是输出,即echo xxxx.
        • @-n

          • @开头的也会输出.
        • @-s

          • 就像所有的recipe行首都添加了@.
    3. recipe执行

      • 说明

        • 执行

          • $(SHELL) $(SHELLFALGS) recipe
          • 执行一行调用一次.每行指令之间独立.
        • 问题

          • 频繁调用效率低.
          • 编写时错误预测指令效果.
        • 案例

          • cd xx在两行执行,工作目录不变.
          • 可使用&&拼接.
      • 一次性执行

        • 好处

          • 减少调用次数,提高效率.
          • 真正友好的多行.
        • 使用方式

          • makefile内任意位置定义.ONESHELL:.
        • 区别

          • 特殊符号@,-,+处理只处理第一行.
          • 注意makefile的特殊符号在SHELL中有特殊含义.
          • 错误处理不一样,之前是一行指令错误就判断,.ONESHELL只判断最后一行指令.使用.SHELLFLAGS+=e规避.
        • 特性

          • 已经定义了多个@,再定义.ONESHELL:也可以友好处理.
          • 只针对部分脚本.
          • 行首的特殊符号会被删掉.这样是避免尽量少的修改.
      • 修改脚本类型

        • recipe处理

          • $(SHELL) $(.SHELLFLAGS) recipe
          • 修改SHELL类型为其他就可以修改recipe的值.
          • 不同rule不同SHELL,可以通过局部变量的方式设置.
        • 案例

          .PHONY:all ok
          .ONESHELL:
          
          all:SHELL:=$(shell which bash)
          all:ok
                 @echo ok
          
          ok:SHELL:=$(shell which python)
          ok:
                 @import re
                 print(re)
          
          
        • SHELL来源

          • SHELL不会从环境变量中继承,其他的都可以.
          • SHELL的值默认是/bin/sh.
          • 用户自定义了SHELL,如果不export是不会继承下去的.shell环境变量依然向下继承.
    4. 并行编译

      • 说明

        • 概念

          • 同时处理多个rule,同时执行多个recipe.
          • 充分的利用多核性能.
        • 声明

          • make -j[N] --jobs[=N]
          • 不声明默认是1线性处理.
          • N是数字表示最多同时处理N个.
          • N不是数字表示不限制.(大型项目编译,可能出现内存不够错误).
      • 递归调用与并行编译

        • 具体见后面章节.
      • 并行编译错误处理

        • 错误返回值

          • 执行某一条指令,返回值不为0,当前target剩下的recipe不执行.
          • 等待其他的正在执行的执行完后退出.
        • -k,--keep-going

          • 仅仅是停止发生错误的target.
          • 依赖的target也会停止最终生成.
          • 但是其他不相关的prerequisite都会继续执行编译.
          • 这种就是尽可能的编译所有.
      • 负载上限

        • 默认

          • 无上限
        • -l float

          • 设置负载值为对应的.
          • 表示最多处理CPU * float个.
      • 并行输出

        • 默认

          • 交叉输出.
          • 有时候难以阅读.
        • 自定义

          • 可以设置输出打包.即输出内容保存,然后一次性输出.
          • 有的可能不支持.版本太老了.
        • 格式

          • -Oxxxx,--output-sync=xxxx
        • 等级

          • none

            • 默认.
            • 交叉立即输出.
          • line

            • 执行完一条指令后输出.
            • recipe有多行,且没有声明.ONESHELL就可能交叉输出.
          • target

            • -O,--output-sync默认值.
            • 处理完target再输出.
          • recurse

            • 处理完一个make再输出.
            • 如果是target有子make,也会保存为一组再进行输出.
            • 而不是子make执行完后就输出.
            • 问题就是可能长时间没有输出.甚至内存消耗过大.
    5. 错误处理

      • 处理

        • 细节

          • 之前下一条recipe之前查看前一条是否正常退出.
          • 有错误就停下当前,并等待其他正在执行的退出.
        • 非错误

          • 得到非0返回值可能并不是错误.
          • 比如mkdir,但是已经存在.
      • 规避

        • 规避错误就退出

          • 行首添加-,针对某一行.
          • -i,--ignore-errors所有的recipe.
          • .IGNORE:没有任何的prerequisite就忽略所有.
          • 虽然能规避,但是可能不可避免的会输出对应的提示信息.
        • -k,--keep-going

          • 有直接或间接依赖关联的targetrecipe不再执行.
          • 没有关联的prerequisite还是会执行.
      • 问题

        • 分析

          • 中途失败可能导致部分编译,而且文件时间戳已经更新.
          • 下次再编译就会出错.
        • 规避

          • .DELETE_ON_ERROR:可以规避.
          • 这个target的依赖会比较前后时间戳,如果时间戳发生了变化,就会删除.
    6. 中断

      • 默认

        • 别中断就删除.
        • 删除判断依据:开始的时间戳和现在的时间戳是否一致.
      • 原因

        • 时间戳前后不一致,表示更新只进行了部分.
        • 数据不完整,就没有意义,可以删除.
      • 规避

        • 声明target.PRECIOUSprerequisite.
        • make处理前就会在这个里面查.
    7. 递归调用

      • 说明

        • 特征

          • rulerecipe中有make指令.
        • 分析

          • 编译子目录下的项目时使用.
        • 等价案例

          subsystem:
             cd subdir && $(MAKE)
          
          subsystem:
             $(MAKE) -C subdir
          
          • 一般来说,递归调用maketarget都是.PHONYprerequisite
      • -C

        • 说明

          • 最常见的递归调用方式.
          • $(make) -C subdir
        • 作用

          • 在启动的时候就生成一个CURDIR并赋值为当前工作目录.
          • 这个变量之后就没有什么用了,只是用于告知开发者当前所在位置.
          • 修改这个值对make没啥影响.
        • CURDIR优先级

          • makefile中定义的变量一样.
      • MAKE变量

          • 最上层shell中调用的可执行文件路径.
          • 在解析recipe的时候会特殊对待.
        • 注意

          • 递归调用建议使用$(MAKE)而不是make.
          • 简介的引用$(MAKE)是无效的,比如DMAKE=$(MAKE);$(DMAKE)是无用的.
        • 区别

          • 在使用-t,-n,-q的时候,包含$(MAKE)recipe会执行,make就不会执行.
          • 执行的好处就是可以递归向下传递.
          • 虽然make加行首+也可以得到同样的效果.
      • make之间参数传递

        • 指定上定义变量

          • make name=value,父子之间会继承.
        • 顶层make

          • 顶层make继承父进程shell的环境变量值.
          • 优先级:env < makefile.-e选项:env > makefile.
        • make

          • 继承父make的环境变量.执行recipe也会继承.
          • make可以通过export添加环境变量.
          • 优先级同上.
        • 变量传递

          • 环境变量,指令中声明.
          • 变量名只能是数字字母下划线.
          • export name[op value|names].
          • export传递所有.定义.EXPORT_ALL_VARIABLES:也传递所有,前者新版本,现在基本都支持;后者老版本,兼容性更好
          • 可以禁止传递部分变量.
          • 禁止传递unexport names
        • SHELL

          • SHELL变量值不会传递.
          • 最顶层的shell的值会传递为默认.
          • 可以使用export强制向下传递.
        • MAKEFLAGS

          • 始终传递.
        • MAKELEVEL

          • 0开始,输出递归深度.
          • 全局共享.一般用作条件判断.
          • 案例:
          .PHONY:all
          ifeq ($(MAKELEVEL),0)
          all:
                 @echo $(MAKELEVEL)
                 @$(MAKE) -f makefile
          else
          all:
                 @echo ok
          endif
          
        • MAKEFILES

          • 让子Make预读一些makefile文件.
      • 选项参数部分传递

        • 传递方式

          • 借助变量MAKEFLAGS.
          • make -ks这个值就是ks.
        • 说明

          • 基本每一个子make都有这个环境变量.
        • 变量定义传递

          • 也是通过MAKEFLAGS,也是=格式.
          • 不想传递可以$(MAKE) -C subdir MAKEFLAGS=
        • 不传递的选项

          • -C,-f,o,W.
        • 并行编译-j

          • 系统支持,那么使用这个的父make可以和所有子make交互.
          • make确保最多N个同时处理,信号量.
          • 任何一个任务被标记为recursive都不会算在总的job里面.
          • 递归算在内那就没有真正执行的了.有可能递归很深就导致一个都不执行.
        • 值定义的值

          .PHONY:all
          ifeq ($(MAKELEVEL),0)
          all:
                 @echo $(MAKELEVEL)
                 @$(MAKE) -f makefile -b aa=bb
          else
          all:
                 @echo ok
                 @echo $(MAKEOVERRIDES): $(MAKEFLAGS)
          endif
          
          
          • 实际值定义位置在MAKEOVERRIDES.MAKEFLAGS实际是个值引用.
          • 不想传递值定义,仅仅传递选项就可以将这个的值设置有空.
          • 一般不会用,不过有的时候因为变量定义导致参数太长需要忽略参数定义.
      • --print-directory

        • 说明

          • 每次子make就会输出调用深度和位置.
        • 输出格式

          • 开始make[$(MAKELEVEL)]: enter$(CURDIR)
          • 结束make[$(MAKELEVEL)]: leave$(CURDIR)
        • 输出

          • -w,--print-directory
        • 禁止输出

          • -s,--no-print-directory
    8. 打包recipe

      • 说明

        • 分析

          • 某些指令在多个target中频繁使用.
          • 就可以用define打包指令,多行.
        • 格式

          • define开头,endef结尾.
          • 所有的都原样保留,变量不扩张.
          • 在真正扩张的位置再进行扩张.
      • 处理

        • recipe

          • 为每一条的行首都添加.RECIPEPREFIX
        • 特殊字符

          • @$(VAR)所有的指令都加@.
          • $(VAR)内部加了的才算.
          • 同理-+是一样.
        • 变量扩张

          • 递归扩张,即扩张变量.
          • 扩张内部.相当于扩张了至少两次.
    9. 空的rule

      • 特征

        • 没有prerequisite,没有recipe
      • 好处

        • 避免隐式搜索.
      • 坏处

        • 不存在就执行recipe,因为是空的.
        • 所以执行完了之后就认为target更新了.
      • 格式

        • target:;
      • 使用

        • .PHONY效果.
        • 可以让不可生成但是存在的target避免隐式搜索.一般是主make.cpp之类的.
    展开全文
  • 性能测试中脚本怎么写 我们经常看到人们出于各种目的而使用脚本(例如,在服务任务,执行侦听器等中)。 使用脚本和Java逻辑通常很有意义: 它不需要打包到jar中并放在classpath上 它使流程定义更易于理解:...
  • 优质的短视频每一个镜头都经过精心设计,镜头的设计就是利用镜头脚本,提前设想好一切想要的镜头效果和画面,最终作品才能一气呵成的呈现出来,接下来就来分析一下短视频拍摄脚本怎么写,短视频拍摄脚本有什么用?...
  • 压力测试脚本怎么写

    2021-06-25 17:29:51
    希望获得大佬指导
  • python脚本之前必须得先导入requests模块哦,详细教程见:win10 python如何安装requests———超详细教程 下面就用题目Bugku web基础$_POST来做示范: 运行python程序,输入如下命令: import requests r = ...
  • while循环 语法: while [ 条件 ]条件判断为真的前提下,开始循环...max() min() avg() user() passwor() shell 为了写脚本。 定义函数 调用函数 函数嵌套 加载函数文件 给函数传参数 函数的返回值 return N 举报/反馈
  • 我有 <ol><li>A.jar</li><li>B.jar</li><li>C.jar</li></ol> 等好几个包需要按序启动.有一定的依赖关系,所以需要监听是否启动. 我卡在怎么查询进程,上了.请问有过windows下批处理启动脚本的么?求教...</p>
  • 1、不记录日志的 SHELL 脚本就是耍流氓! 我们经常在工作中会遇到一个苦恼的事情,一个 Shell脚本到底干了什么,什么时候开始执行,什么时候结束的。尤其是数据库备份,我们想知道我们的 MySQL 数据库备份时间。所以...
  • Kotlin如何写脚本

    千次阅读 2018-04-07 16:00:01
    一、Kotlin有强大的编写脚本的能力,下面来看个例子 编写Kotlin脚本,得先...四、一般脚本都是在命令行运行的,那么怎么在命令行运行该脚本呢 进入该脚本所在的文件目录下 ~/SpringSpace/genericity/src/mai...
  • 在本篇文章开始前,我想想来回答一个问题:我为什么要这一篇关于面试的文章? 原因有三:第一,我想为每一个为梦想时刻准备着的”有心人“尽一份自己的力量,提供一份高度精华的Java面试清单;第二,目前市面上的...
  • <p>factory talk SE软件里怎么写VBA脚本来实现一个报警一天弹框报警的次数,每天只弹一次</p>

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 3,836
精华内容 1,534
关键字:

怎么写脚本