如何运行linux shell程序

作者&投稿:坚琼 (若有异议请与网页底部的电邮联系)
linux shell脚本如何启动一个java进程~

在shell脚本中直接执行java就行了,比如写个a.sh文件

#!/bin/bash

java a.class

就行了,然后保存,执行bash a.sh脚本。如果要后台运行,则bash a.sh&

编写好的shell脚本(如:test),可以采取两种方式进行运行:
一、 $ sh test
一般不采用这种调用方式,尤其不采用“sh<test”的调用方式,因为这种方式将禁止shell读取标准输入。
也可以采用 $ ksh test
这种方式要求shell具有“可读”的访问权限。
二、直接运行可执行的shell脚本之前,首先应使用下列chmod命令,把shell脚本文件设置为可执行的文件。
chmod 755 test(除文件属主可写之外,每个用户均具有读和可执行的访问权限)
chmod +rx test(同上)
chmod u+rx test(只有文件属主具有读和执行的访问权限)
按照上述要求设置shell脚本文件的访问权限后,可采用下列方式,直接运行shell脚本了。
1、test(如果命令检索路径包含当前目录)
2、./test(如果命令减缩路径不包含当前目录)
*说明: sh test 方式调用一个shell叫蹦可能会禁止某些shell特定的扩展功能,因而可能引起脚本无法正确执行。

编写好的shell脚本(如:test),可以采取两种方式进行运行:\x0d\x0a一、 $ sh test\x0d\x0a一般不采用这种调用方式,尤其不采用“sh<test”的调用方式,因为这种方式将禁止shell读取标准输入。\x0d\x0a也可以采用 $ ksh test\x0d\x0a这种方式要求shell具有“可读”的访问权限。\x0d\x0a二、直接运行可执行的shell脚本之前,首先应使用下列chmod命令,把shell脚本文件设置为可执行的文件。\x0d\x0achmod 755 test(除文件属主可写之外,每个用户均具有读和可执行的访问权限)\x0d\x0achmod +rx test(同上)\x0d\x0achmod u+rx test(只有文件属主具有读和执行的访问权限)\x0d\x0a按照上述要求设置shell脚本文件的访问权限后,可采用下列方式,直接运行shell脚本了。\x0d\x0a1、test(如果命令检索路径包含当前目录)\x0d\x0a2、./test(如果命令减缩路径不包含当前目录)\x0d\x0a*说明: sh test 方式调用一个shell叫蹦可能会禁止某些shell特定的扩展功能,因而可能引起脚本无法正确执行。

如何运行shell程序,如何在shell程序以及后续脚本中使用同一个变量,这些在工作中经常用到, 我找到如下的文章,再加深复习一下。
1 source命令用法:
  source FileName
  作用:在当前bash环境下读取并执行FileName中的命令。该filename文件可以无"执行权限"
注:该命令通常用命令“.”来替代。
如:source .bash_profile
. .bash_profile两者等效。
source(或点)命令通常用于重新执行刚修改的初始化文档。
source命令(从 C Shell 而来)是bash shell的内置命令。
点命令,就是个点符号,(从Bourne Shell而来)。
source的程序主体是bash,脚本中的$0变量的值是bash,而且由于作用于当前bash环境,脚本中set的变量将直接起效

2 sh, bash的命令用法:
sh/bash FileName

作用:打开一个子shell来读取并执行FileName中命令。该filename文件可以无"执行权限"

注:运行一个shell脚本时会启动另一个命令解释器.
每个shell脚本有效地运行在父shell(parent shell)的一个子进程里.
这个父shell是指在一个控制终端或在一个xterm窗口中给你命令指示符的进程.
shell脚本也可以启动他自已的子进程.
这些子shell(即子进程)使脚本并行地,有效率地地同时运行脚本内的多个子任务.
在ubuntu中sh只是bash的一个链接。
由于是在子shell中执行,脚本设置的变量不会影响当前shell。

3 ./的命令用法:
./FileName
作用:打开一个子shell来读取并执行FileName中命令。该filename文件需要"执行权限"
注:运行一个shell脚本时会启动另一个命令解释器.
每个shell脚本有效地运行在父shell(parent shell)的一个子进程里.
这个父shell是指在一个控制终端或在一个xterm窗口中给你命令指示符的进程.
shell脚本也可以启动他自已的子进程.
这些子shell(即子进程)使脚本并行地,有效率地地同时运行脚本内的多个子任务.
由于是在子shell中执行,脚本设置的变量不会影响当前shell。

4 export:
一个变量创建时,它不会自动地为在它之后创建的shell进程所知。而命令export可以向后面的shell传递变量的值。当一个shell脚本调用并执行时,它不会自动得到原为脚本(调用者)里定义的变量的访问权,除非这些变量已经被显式地设置为可用。export命令可以用于传递一个或多个变量的值到任何后继脚本
5. 举例
比如您在一个脚本里export $KKK=111 ,假如您用./a.sh执行该脚本,执行完毕后,您运行 echo $KKK ,发现没有值,假如您用source来执行 ,然后再echo ,就会发现KKK=111。因为调用./a.sh来执行shell是在一个子shell里运行的,所以执行后,结构并没有反应到父shell里,但是 source不同他就是在本shell中执行的,所以能够看到结果.
小测试
1 建立test.sh
#!/bin/bash
export s=/home/jboss/
2 执行命令: source test.sh
echo $s
结果输出: /home/jboss/
3 新开个shell
执行命令: ./test.sh
echo $s
结果: 没有输出s值

结论:
1、执行脚本时是在一个子shell环境运行的,脚本执行完后该子shell自动退出。
2、一个shell中的系统环境变量才会被复制到子shell中(用export定义的变量);
3、一个shell中的系统环境变量只对该shell或者它的子shell有效,该shell结束时变量消失(并不能返回到父shell中)。3、不用 export定义的变量只对该shell有效,对子shell也是无效的。

直接执行一个脚本文件是在一个子shell中运行的,而source则是在当前shell环境中运行的。
source可以让脚本影响它们的父shell环境,这和export去影响子shell环境相反.


朔城区19165197861: 执行Linux的Shell脚本程序有哪三种方法? -
浑药喜安: 展开全部1、复制到PATH变量路径下,并加可执行权限2、加可执行权限,输入全路径执行.3、bash 文件名.

朔城区19165197861: linux 怎么运行shell -
浑药喜安: 首先, shell要有运行的权限,比如chmod 700 abc.shell 或者 chmod 777 abc.shell. 700 770 777的区别你可以百度一下相关知识.然后,执行的方法,一种是直接打绝对路径 ,如 /a/b/c/d/e/f/abc.shell,另一种就是cd /a/b/c/d/e/f/,然后再 ./abc.shell

朔城区19165197861: 在linux下怎么运行shell程序 -
浑药喜安: $sh abc.sh 这样手动运行 如果要自动运行 则需要 配置可执行权限, chmod +x abc.sh

朔城区19165197861: 如何在Linux系统中执行Shell文件? -
浑药喜安: 首先你要让文件有能够执行的权限,比如你的文件是a.sh那么你可以chmod x a.sh然后运行文件就可以了./a.sh这样运行是a.sh在当前工作目录,如果文件没在当前目录,那么就需要用绝对路径来执行,比如/opt/a.sh ,/opt/test/a.sh,如果想知道更多的linux相关可以关注《linux就该这么学》这本书.

朔城区19165197861: 如何在Windows下运行linux shell脚本 -
浑药喜安: 工具/原料 Windowsgit 方法/步骤如下: 1、首先电脑中需要安装的是git的应用程序,安装完成之后,可以在开始菜单进行查看.2、并需要配置好git的bin,配置环境变量,把bin的绝对路径复制到环境变量中path.3、配置git的环境...

朔城区19165197861: 在Linux中怎么运行shell脚本 -
浑药喜安: sh filename.sh 你也可以直接 ./filename 注意前面的==> ./ <== 不过你首先要ls -l确定一下这个文件又没有执行权限.

朔城区19165197861: linux下shell文件怎么执行 -
浑药喜安: 首先确认你的shell有没有执行权限 用ls -l 如果有三个X 就是可执行的 然后./shell文件名称 就执行了

朔城区19165197861: 如何在windows下使用linux的shell脚本 -
浑药喜安: Linux的shell脚本提供了大量方便的工具,如:awk、grep、more、tail、wc等等,方便用户对文件、数据抄的分析,但是windows相对来说就没那么方便,要分析一个数据可能需要自己编程、编译然后才能对一些数据进行分析,对于一些轻量级...

朔城区19165197861: LINUX中如何使用Shell,我刚用,都没找到地方 -
浑药喜安: shell就是操作系统的外壳,是用做用户和系统内核交互的工具,包括图形的和命令行的.在linux中想使用shell只要在运行命令中输入xterm或者按住ctrl+alt+f1就行了.

朔城区19165197861: 怎么执行linux shell编程 -
浑药喜安: 如果你指的是如何运行的话,直接“./shell程序”就可以了

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网