shell脚本调用命令
Ⅰ shell脚本执行命令
启动java程序的命令格式是什么?
可以用for循环,接收端口参数
Ⅱ shell脚本里的函数怎么调用
shell中的函数,要在定义这个函数的脚本中进行调用!
#!/bin/sh
echo_line(){
echodate
echo"Wellcometoshellfunc!"
}
echo_hello(){
echo"HelloWorld!"
}
##在这里调用,将全部代码写入test.sh就可以了
echo"callecho_hello"
echo_hello
echo"callecho_line"
echo_line
在命令行下执行:
$test.sh
Ⅲ 如何执行shell脚本其中一条命令
方法一:切换到shell脚本所在的目录(此时,称为工作目录)执行shell脚本:
复制代码代码如下:
cd /data/shell
./hello.sh
./的意思是说在当前的工作目录下执行hello.sh。如果不加上./,bash可能会响应找到不到hello.sh的错误信息。因为目前的工作目录(/data/shell)可能不在执行程序默认的搜索路径之列,也就是说,不在环境变量PASH的内容之中。查看PATH的内容可用 echo $PASH 命令。现在的/data/shell就不在环境变量PASH中的,所以必须加上./才可执行。
方法二:以绝对路径的方式去执行bash shell脚本:
复制代码代码如下:
/data/shell/hello.sh
方法三:直接使用bash 或sh 来执行bash shell脚本:
复制代码代码如下:
cd /data/shell
bash hello.sh
或
复制代码代码如下:
cd /data/shell
sh hello.sh
注意,若是以方法三的方式来执行,那么,可以不必事先设定shell的执行权限,甚至都不用写shell文件中的第一行(指定bash路径)。因为方法三是将hello.sh作为参数传给sh(bash)命令来执行的。这时不是hello.sh自己来执行,而是被人家调用执行,所以不要执行权限。那么不用指定bash路径自然也好理解了啊,呵呵……。
方法四:在当前的shell环境中执行bash shell脚本:
复制代码代码如下:
cd /data/shell
. hello.sh
或
复制代码代码如下:
cd /data/shell
source hello.sh
前三种方法执行shell脚本时都是在当前shell(称为父shell)开启一个子shell环境,此shell脚本就在这个子shell环境中执行。shell脚本执行完后子shell环境随即关闭,然后又回到父shell中。而方法四则是在当前shell中执行的。
Ⅳ shell脚本的执行都有哪些方法,有何不同
你好!
运行一个Bash脚本的3中方式:
1.为脚本文件加上可执行的权限:
chmod
+x
script_file
2.运行/bin/bash
命令并且把脚本文件名作为它的参数
3.可在shell脚本中的开头加上一句:#!/bin/bash,然后在脚本所在目录
./shellfile
看自己的需求,没什么本质的区别。
希望对你有所帮助,望采纳。
Ⅳ 一个shell脚本 怎么执行多条命令
#cat canshu.txt # 这个文件里放你的第3 4 参数
xx3 xx4
下面这个脚本先for 读出你的参数,然后依次拼成命令执行调用
#!/bin/sh
for canshu in `cat canshu.txt`
do
canshu3=`echo $canshu|awk '{print $1}'`
canshu4=`echo $canshu|awk '{print $2}'`
sh a.sh 20131201 20131231 $canshu3 $canshu4
done
Ⅵ 如何在shell脚本中执行cd命令
可以使用eval命令。eval命令,如同熟悉的其他脚本语言,会将它的参数做为命令执行。eval命令将会首先扫描命令行进行所有的替换,然后再执行命令。该命令使用于那些一次扫描无法实现其功能的变量。该命令对变量进行两次扫描。这些需要进行两次扫描的变量有时候被称为复杂变量。命令格式:eval [参数]
补充说明:eval可读取一连串的参数,然后再依参数本身的特性来执行。参数不限数目,彼此之间用分号分开。
Ⅶ 【关于:shell 脚本中 调用 指令的问题】
count=`eval $temp `
count=` $temp ` 不会对后面temp里面的字符串进行分割了,会把后面grep等等当做cat的参数。
Ⅷ 如何在java程序中调用linux命令或者shell脚本
在java程序中如何调用linux的命令?如何调用shell脚本呢?
这里不得不提到java的process类了。
process这个类是一个抽象类,封装了一个进程(你在调用linux的命令或者shell脚本就是为了执行一个在linux下执行的程序,所以应该使用process类)。
process类提供了执行从进程输入,执行输出到进程,等待进程完成,检查进程的推出状态,以及shut down掉进程。
至于详细的process类的介绍放在以后介绍。
另外还要注意一个类:Runtime类,Runtime类是一个与JVM运行时环境有关的类,这个类是Singleton的。
这里用到的Runtime.getRuntime()方法是取得当前JVM的运行环境,也是java中唯一可以得到运行环境的方法。(另外,Runtime的大部分方法都是实例方法,也就是说每次运行调用的时候都需要调用到getRuntime方法)
下面说说Runtime的exec()方法,这里要注意的有一点,就是public Process exec(String [] cmdArray, String [] envp);这个方法中cmdArray是一个执行的命令和参数的字符串数组,数组的第一个元素是要执行的命令往后依次都是命令的参数,envp感觉应该和C中的execve中的环境变量是一样的,envp中使用的是name=value的方式。
下面说一下,如何使用process来调用shell脚本
例如,我需要在linux下实行linux命令:sh test.sh,下面就是执行test.sh命令的方法:
这个var参数就是日期这个201102包的名字。
String shpath="/test/test.sh"; //程序路径
Process process =null;
String command1 = “chmod 777 ” + shpath;
process = Runtime.getRuntime().exec(command1);
process.waitFor();
String var="201102"; //参数
String command2 = “/bin/sh ” + shpath + ” ” + var;
Runtime.getRuntime().exec(command2).waitFor();
注意:
1
我为什么要使用 chmod 777命令呢?在有的机器上面,可能没有设置权限问题。这是你在linux下面执行shell脚本需要注意的问题。没有的话,就需要添加权限,就用chmod 777,否则在执行到Runtime.getRuntime().exec的时侯会出现Permission denied错误。
2
waitFor()这个也是必不可缺的,如果你需要执行多行命令的话,把waitFor()这个加上。
Ⅸ 如何在shell脚本中执行系统命令
shell里面不能直接写命令名字, 系统找不到的, 因为你没有设置环境变量。 要么设置环境变量,要么使用命令的绝对路径。如/bin/echo “hellow world”
