当前位置:首页 » 编程软件 » shell脚本javascript

shell脚本javascript

发布时间: 2022-09-02 14:15:19

Ⅰ js 可以 调用powershell 脚本

通过cmd来调用应该可以。
s=new ActiveXObject("WScript.Shell");

cmd="powershell -ExecutionPolicy RemoteSigned -F test.ps1";
s.Run(cmd);

Ⅱ 游戏中常说的用脚本是什么意思

脚本简单地说就是一条条的文字命令,这些文字命令是可以看到的,脚本程序在执行时,是由系统的一个解释器,将其一条条的翻译成机器可识别的指令,并按程序顺序执行。

因为脚本在执行时多了一道翻译的过程,所以它比二进制程序执行效率要稍低一些。

游戏脚本的意思,就是一个模拟鼠标、键盘的程序。

比如玩家要按一下A键, 移动鼠标点击一下。这个动作,用脚本可以直接帮玩家执行,省了手动操作。但使用游戏脚本在游戏中是作弊行为,会严重影响其他玩家的体验,因此需要严厉抵制。

(2)shell脚本javascript扩展阅读:

脚本的编写都是采用某一种编程语言。

如 LoadRunnert 测试工具用的 C 语言;WebLoadt 测试工具用 JavaScript 或者是接近编程语言的方式;Robot 测试工具用SQABasic, 一种类似于VB的语言;

QTPt 测试工具所用到的是VBScript;WinRunnert 测试工具所用到的是类 C 的语言。这些测试脚本的易读性相对较低,编写相对复杂, 当设备的功能需求发生变化时,测试脚本不易被维护。

常见的脚本语言有:Scala、JavaScript,VBScript,ActionScript,MAX Script,ASP,JSP,php,SQL,Perl,Shell,python,Ruby,JavaFX,Lua,AutoIt等。

Ⅲ shelljavascript脚本放在哪

根据自己的需求放置即可。
javascript脚本可以放在:1、HTML的body部分中,JavaScripts脚本会在页面加载的时候被执行;2、HTML的head部分中,JavaScripts脚本会在被调用的时候才执行。
javascript脚本放在那里,一般来说不会影响其执行地效果,当你打开一个网页的时候他会先执行你需要执行的脚本语言最后才会执行HTML语言脚本。

Ⅳ 脚本中,按键精灵和其他的shell脚本、javascript脚本有什么功能上的区别

按键精灵的脚本采用的是VBScript语法,而且它加了很多自己特有的命令(主要是针对游戏的),另外它是用自己的脚本解析器来运行的。
javascript则是嵌入到网页内的脚本语言,由浏览器负责解析运行。
两者基本上没有任何交集,所以无法进行比较。

Ⅳ 怎么通过java去调用并执行shell脚本以及问题总结

对于第一个问题:java抓取,并且把结果打包。那么比较直接的做法就是,java接收各种消息(db,metaq等等),然后借助于jstorm集群进行调度和抓取。
最后把抓取的结果保存到一个文件中,并且通过调用shell打包, 回传。 也许有同学会问,
为什么不直接把java调用odps直接保存文件,答案是,我们的集群不是hz集群,直接上传odps速度很有问题,因此先打包比较合适。(这里不纠结设计了,我们回到正题)

java调用shell的方法

通过ProcessBuilder进行调度

这种方法比较直观,而且参数的设置也比较方便, 比如我在实践中的代码(我隐藏了部分业务代码):

ProcessBuilderpb = new ProcessBuilder("./" + RUNNING_SHELL_FILE, param1,
param2, param3);
pb.directory(new File(SHELL_FILE_DIR));
int runningStatus = 0;
String s = null;
try {
Process p = pb.start();
try {
runningStatus = p.waitFor();
} catch (InterruptedException e) {
}

} catch (IOException e) {
}
if (runningStatus != 0) {
}
return;

这里有必要解释一下几个参数:

RUNNING_SHELL_FILE:要运行的脚本

SHELL_FILE_DIR:要运行的脚本所在的目录; 当然你也可以把要运行的脚本写成全路径。

runningStatus:运行状态,0标识正常。 详细可以看java文档。

param1, param2, param3:可以在RUNNING_SHELL_FILE脚本中直接通过1,2,$3分别拿到的参数。

直接通过系统Runtime执行shell

这个方法比较暴力,也比较常用, 代码如下:

p = Runtime.getRuntime().exec(SHELL_FILE_DIR + RUNNING_SHELL_FILE + " "+param1+" "+param2+" "+param3);
p.waitFor();

我们发现,通过Runtime的方式并没有builder那么方便,特别是参数方面,必须自己加空格分开,因为exec会把整个字符串作为shell运行。

可能存在的问题以及解决方法

如果你觉得通过上面就能满足你的需求,那么可能是要碰壁了。你会遇到以下情况。

没权限运行

这个情况我们团队的朱东方就遇到了, 在做DTS迁移的过程中,要执行包里面的shell脚本, 解压出来了之后,发现执行不了。 那么就按照上面的方法授权吧

java进行一直等待shell返回

这个问题估计更加经常遇到。 原因是, shell脚本中有echo或者print输出, 导致缓冲区被用完了! 为了避免这种情况, 一定要把缓冲区读一下, 好处就是,可以对shell的具体运行状态进行log出来。 比如上面我的例子中我会变成:

ProcessBuilderpb = new ProcessBuilder("./" + RUNNING_SHELL_FILE, keyword.trim(),
taskId.toString(), fileName);
pb.directory(new File(CASPERJS_FILE_DIR));
int runningStatus = 0;
String s = null;
try {
Process p = pb.start();
BufferedReaderstdInput = new BufferedReader(new InputStreamReader(p.getInputStream()));
BufferedReaderstdError = new BufferedReader(new InputStreamReader(p.getErrorStream()));
while ((s = stdInput.readLine()) != null) {
LOG.error(s);
}
while ((s = stdError.readLine()) != null) {
LOG.error(s);
}
try {
runningStatus = p.waitFor();
} catch (InterruptedException e) {
}

记得在start()之后, waitFor()之前把缓冲区读出来打log, 就可以看到你的shell为什么会没有按照预期运行。 这个还有一个好处是,可以读shell里面输出的结果, 方便java代码进一步操作。

也许你还会遇到这个问题,明明手工可以运行的命令,java调用的shell中某一些命令居然不能执行,报错:命令不存在!

比如我在使用casperjs的时候,手工去执行shell明明是可以执行的,但是java调用的时候,发现总是出错。
通过读取缓冲区就能发现错误日志了。 我发现即便自己把安装的casperjs的bin已经加入了path中(/etc/profile,
各种bashrc中)还不够。 比如:

exportNODE_HOME="/home/admin/node"
exportCASPERJS_HOME="/home/admin/casperjs"
exportPHANTOMJS_HOME="/home/admin/phantomjs"
exportPATH=$PATH:$JAVA_HOME/bin:/root/bin:$NODE_HOME/bin:$CASPERJS_HOME/bin:$PHANTOMJS_HOME/bin

原来是因为java在调用shell的时候,默认用的是系统的/bin/下的指令。特别是你用root权限运行的时候。 这时候,你要在/bin下加软链了。针对我上面的例子,就要在/bin下加软链:

ln -s /home/admin/casperjs/bin/casperjscasperjs;
ln -s /home/admin/node/bin/nodenode;
ln -s /home/admin/phantomjs/bin/phantomjsphantomjs;

这样,问题就可以解决了。

如果是通过java调用shell进行打包,那么要注意路径的问题了

因为shell里面tar的压缩和解压可不能直接写:

tar -zcf /home/admin/data/result.tar.gz /home/admin/data/result

直接给你报错,因为tar的压缩源必须到路径下面, 因此可以写成

tar -zcf /home/admin/data/result.tar.gz -C /home/admin/data/ result

如果我的shell是在jar包中怎么办?

答案是:解压出来。再按照上面指示进行操作。(1)找到路径

String jarPath = findClassJarPath(ClassLoaderUtil.class);
JarFiletopLevelJarFile = null;
try {
topLevelJarFile = new JarFile(jarPath);
Enumeration<JarEntry> entries = topLevelJarFile.entries();
while (entries.hasMoreElements()) {
JarEntryentry = entries.nextElement();
if (!entry.isDirectory() entry.getName().endsWith(".sh")) {
对你的shell文件进行处理
}
}

对文件处理的方法就简单了,直接touch一个临时文件,然后把数据流写入,代码:

FileUtils.touch(tempjline);
tempjline.deleteOnExit();
FileOutputStreamfos = new FileOutputStream(tempjline);
IOUtils.(ClassLoaderUtil.class.getResourceAsStream(r), fos);
fos.close();

Ⅵ 如何在shell中执行简单的javascript脚本

javascript脚本的运行需要一个JS的执行环境(比如浏览器就是一个执行环境),不同的执行环境下有个别的差异,差异主要是和环境以及平台相关的.

如果是在windows的cmd环境下,可以使用系统自带的wscript.exe来运行简单的脚本. 例如:

R:>catc.js
varsum=0;
for(vari=0;i<10;i++){
sum+=i;
}
WScript.Echo(sum);
R:>wscriptc.js

linux或者windows下均可以通过node.js提供的运行环境来执行js脚本,例如:

R:>catd.js
varsum=0;
for(vari=0;i<10;i++){
sum+=i;
}
console.log(sum);
R:>noded.js
45

node提供了完成的平台开发环境,可以尝试下. 需自行安装

Ⅶ 脚本分几种,用途都是什么

脚本(script)是使用一种特定的描述性语言,依据一定的格式编写的可执行文件,又称作宏或批处理文件。脚本是批处理文件的延伸,是一种纯文本保存的程序,一般来说的计算机脚本程序是确定的一系列控制计算机进行运算操作动作的组合,在其中可以实现一定的逻辑分支等。 脚本简单地说就是一条条的文字命令,这些文字命令是可以看到的(如可以用记事本打开查看、编辑),脚本程序在执行时,是由系统的一个解释器,将其一条条的翻译成机器可识别的指令,并按程序顺序执行。因为脚本在执行时多了一道翻译的过程,所以它比二进制程序执行效率要稍低一些。 脚本通常可以由应用程序临时调用并执行。各类脚本被广泛地应用于网页设计中,因为脚本不仅可以减小网页的规模和提高网页浏览速度,而且可以丰富网页的表现,如动画、声音等。举个最常见的例子,当点击网页上的Email地址时能自动调用Outlook Express或Foxmail这类邮箱软件,就是通过脚本功能来实现的。也正因为脚本的这些特点,往往被一些别有用心的人所利用。例如在脚本中加入一些破坏计算机系统的命令,这样当用户浏览网页时,一旦调用 这类脚本,便会使用户的系统受到攻击。所以用户应根据对所访问网页的信任程度选择安全等级,特别是对于那些本身内容就非法的网页,更不要轻易允许使用脚本。通过“安全设置”对话框,选择“脚本”选项下的各种设置就可以轻松实现对脚本的禁用和启用。 计算机语言是为了各种目的和任务而开发的,一个常见任务就是把各种不同的已有组件连接起来以完成相关任务。大多脚本语言共性是:良好的快速开发,高效率的执行,解释而非编译执行,和其它语言编写的程序组件之间通信功能很强大。 许多脚本语言用来执行一次性任务,尤其是系统管理方面。它可以把服务组件粘合起来,因此被广泛用于GUI创建或者命令行,操作系统通常提供一些默认的脚本语言,即通常所谓shell脚本语言。 脚本通常以文本(如ASCII)保存,只在被调用时进行解释或编译。 有些脚本是为了特定领域设计的,但通常脚本都可以写更通用的脚本。在大型项目中经常把脚本和其它低级编程语言一起使用,各自发挥优势解决特定问题。脚本经常用于设计互动通信,它有许多可以单独执行的命令,可以做很高级的操作,(如在传统的Unix shell (sh)中,大多操作就是程序本身。) 这些高级命令简化了代码编写过程。诸如内存自动管理和溢出检查等性能问题可以不用考虑。在更低级或非脚本语言中,内存及变量管理和数据结构等耗费人工,为解决一个给定问题需要大量代码,当然这样能够获得更为细致的控制和优化。脚本缺少优化程序以提速或者降低内存的伸缩性。 综上所述,脚本编程速度更快,且脚本文件明显小于如同类C程序文件。这种灵活性是以执行效率为代价的。脚本通常是解释执行的,速度可能很慢,且运行时更耗内存。在很多案例中,如编写一些数十行的小脚本,它所带来的编写优势就远远超过了运行时的劣势,尤其是在当前程序员工资趋高和硬件成本趋低时。 然而,在脚本和传统编程语言之间的界限越来越模糊,尤其是在一系列新语言及其集成畅出现时。在一些脚本语言中,有经验的程序员可以进行大量优化工作。在大多现代系统中通常有多种合适的脚本语言可以选择,所以推荐使用多种语言(包括C或汇编语言)编写一种脚本。 常见的脚本语言:Scala、JavaScript,VBScript,ActionScript,MAX Script,ASP,JSP,PHP,SQL,Perl,Shell,python,Ruby,JavaFX,Lua,AutoIt等。 [编辑本段]与其他编程语言的关系及特点 1.脚本语言(JavaScript,VBscript等)介于HTML和C,C++,Java,C#等编程语言之间。 HTML通常用于格式化和链结文本。而编程语言通常用于向机器发出一系列复杂的指令。 2.脚本语言与编程语言也有很多相似地方,其函数与编程语言比较相象一些,其也涉及到变量。与编程语言之间最大的区别是编程语言的语法和规则更为严格和复杂一些. 3.与程序代码的关系:脚本也是一种语言,其同样由程序代码组成。 注:脚本语言一般都有相应的脚本引擎来解释执行。 他们一般需要解释器才能运行。Python、JAVASCRIPT,ASP,PHP,PERL,Nuva都是脚本语言。C/C++编译、链接后,可形成独立执行的exe文件。 4.脚本语言是一种解释性的语言,例如Python、vbscript,javascript,installshield script,ActionScript等等,它不象c\c++等可以编译成二进制代码,以可执行文件的形式存在. 脚本语言不需要编译,可以直接用,由解释器来负责解释。 5.脚本语言一般都是以文本形式存在,类似于一种命令. 举个例子说,如果你建立了一个程序,叫aaa.exe,可以打开.aa为扩展名的文件. 你为.aa文件的编写指定了一套规则(语法),当别人编写了.aa文件后,你的程序用这种规则来理解编写人的意图,并作出回应.那么,这一套规则就是脚本。 计算机脚本语言程序举例 (1)JavaScript: ①用于HTML中: alert("Hello World") ②用于WSH中: WScript.Echo("Hello World") (2)ASP: <% Response.Write("Hello, world!") %> 或者: <% strHelloWorld = "Hello, world!" %> <%= strHelloWorld %> 或者简单地写成: <%= "Hello, world!" %> (3)PHP: <?php echo 'Hello, world!'; print 'Hello, world!'; ?> 或者 <?= "Hello World!"?> (4)PERL: #!/usr/local/bin/perl print "Hello, world!\n"; (5)Nuva: <.. "Hello, World!" Demo ..> <. //====================================== // Hello, World! (1) //====================================== ?? 'Hello, World!' /*====================================== Hello, World! (2) ======================================*/ function HelloWorld() ?? "Hello, World!"; end function HelloWorld(); /*====================================== Hello, World! (3) ======================================*/ class World() function Hello() ?? 'Hello, World!'; end function end class var n = World(); n.Hello(); .> (6)ActionScript: ①ActionScript 2.0版本: trace("Hello, world!"); ②ActionScript 3.0版本: package { import flash.display.TextField; import flash.display.MovieClip; import flash.filters.DropShadowFilter; public class HelloWorld extends MovieClip { public function HelloWorld() { var shad:DropShadowFilter = new DropShadowFilter(2, 45, 0x000000, 25, 3, 3, 2, 2); var txt:TextField = new TextField(); txt.textColor = 0xFFFFFF; txt.filters = [shad]; txt.width = 120; txt.x = Math.random()*300; txt.y = Math.random()*300; txt.selectable = false; txt.text = "Hello World! ["+Math.round(txt.x)+","+Math.round(txt.y)+"]"; addChild(txt); } } } (7)PostScript: PostScript是一种专门用来创建图像的语言,常用于打印机。 /font /Courier findfont 24 scalefont font setfont 100 100 moveto (Hello World!) show showpage (8)AppleScript: say "Hello World!" (9)Bash: #!/usr/bin/env bash myvar="hello" myfunc() { local x local myvar="one two three" for x in $myvar do echo $x done } myfunc echo $myvar $x (10)Ruby #!/usr/bin/env ruby puts "Hello, world!"

Ⅷ 什么是脚本语言脚本语言的优缺点

脚本语言又被称为扩建的语言,或者动态语言,是一种编程语言,用来控制软件应用程序,那么你对脚本语言了解多少呢?以下是由我整理关于什么是脚本语言的内容,希望大家喜欢!

脚本语言的定义

脚本语言是为了缩短传统的编写-编译-链接-运行(edit-compile-link-run)过程而创建的计算机编程语言。此命名起源于一个脚本“screenplay”,每次运行都会使对话框逐字重复。早期的脚本语言经常被称为批处理语言或工作控制语言。一个脚本通常是解释运行而非编译。虽然许多脚本语言都超越了计算机简单任务自动化的领域,成熟到可以编写精巧的程序,但仍然还是被称为脚本。几乎所有计算机系统的各个层次都有一种脚本语言。包括操作系统层,如计算机游戏,网络应用程序,文字处理文档,网络软件等。在许多方面,高级编程语言和脚本语言之间互相交叉,二者之间没有明确的界限。一个脚本可以使得本来要用键盘进行的相互式操作自动化。一个Shell脚本主要由原本需要在命令行输入的命令组成,或在一个文本编辑器中,用户可以使用脚本来把一些常用的操作组合成一组序列。主要用来书写这种脚本的语言叫做脚本语言。很多脚本语言实际上已经超过简单的用户命令序列的指令,还可以编写更复杂的程序。

脚本语言的特点

1、脚本语言(JavaScript,VBscript等)介于HTML和C,C++,Java,C#等编程语言之间。HTML通常用于格式化和链接文本。而编程语言通常用于向机器发出一系列复杂的指令。

2、脚本语言与编程语言也有很多相似地方,其函数与编程语言比较相像一些,其也涉及到变量。与编程语言之间最大的区别是编程语言的语法和规则更为严格和复杂一些.

3、与程序代码的关系:脚本也是一种语言,其同样由程序代码组成。

4、脚本语言是一种解释性的语言,例如Python、vbscript,javascript,installshield script,ActionScript等等,它不象cc++等可以编译成二进制代码,以可执行文件的形式存在,脚本语言不需要编译,可以直接用,由解释器来负责解释。

5、脚本语言一般都是以文本形式存在,类似于一种命令。

举个例子说:如果建立了一个程序,叫aaa.exe,可以打开.aa为扩展名的文件,为.aa文件的编写指定了一套规则(语法),当别人编写了.aa文件后,自己的程序用这种规则来理解编写人的意图,并作出回应,那么,这一套规则就是脚本语言。

6、相对于编译型计算机编程语言:用脚本语言开发的程序在执行时,由其所对应的解释器(或称虚拟机)解释执行。系统程序设计语言是被预先编译成机器语言而执行的。脚本语言的主要特征是:程序代码即是脚本程序,亦是最终可执行文件。脚本语言可分为独立型和嵌入型,独立型脚本语言在其执行时完全依赖于解释器,而嵌入型脚本语言通常在编程语言中(如C,C++,VB,Java等)被嵌入使用。

7、和系统程序设计语言相比:不同是脚本语言是被解释而系统程序设计语言是被编译。被解释的语言由于没有编译时间而提供快速的转换,通过允许用户运行时编写应用程序,而不需要耗时的编译/打包过程。解释器使应用程序更加灵活,脚本语言的代码能够被实时生成和执行。脚本语言通常都有简单、易学、易用的特性,目的就是希望能让程序设计师快速完成程序的编写工作。

脚本语言的优缺点

优点

快速开发:脚本语言极大地简化了“开发、部署、测试和调试”的周期过程。

容易部署:大多数脚本语言都能够随时部署,而不需要耗时的编译/打包过程。

同已有技术的集成:脚本语言被Java或者COM这样的组件技术所包围,因此能够有效地利用代码。

易学易用:很多脚本语言的技术要求通常要低一些,因此能够更容易地找到大量合适的技术人员。

动态代码:脚本语言的代码能够被实时生成和执行,这是一项高级特性,在某些应用程序里(例如JavaScript里的动态类型)是很有用也是必需的。

缺点

脚本语言不够全面:它们会要求一门“真正的”编程语言的存在,必须找一个数据库驱动程序将其内置进脚本语言里。

脚本语言并不是软件工程和构建代码结构的最佳选择,例如面向对象和基于组件的开发。

热点内容
存储时4k 发布:2025-02-12 09:33:31 浏览:87
stn数据库 发布:2025-02-12 09:32:31 浏览:602
iossocket编程 发布:2025-02-12 09:32:20 浏览:899
sql语句相等 发布:2025-02-12 09:32:19 浏览:351
278源码 发布:2025-02-12 09:22:40 浏览:248
13人牛牛源码 发布:2025-02-12 09:22:40 浏览:155
win2008r2搭建iscsi服务器 发布:2025-02-12 09:18:30 浏览:634
python解压zip 发布:2025-02-12 09:08:46 浏览:921
如何加强人员配置 发布:2025-02-12 09:07:54 浏览:417
lol一区为什么服务器好卡 发布:2025-02-12 09:02:22 浏览:629