linux脚本调用命令 linux怎么调用脚本-成都快上网建站

linux脚本调用命令 linux怎么调用脚本

linux 中怎样执行脚本

首先脚本需要有执行权限

在信丰等地区,都构建了全面的区域性战略布局,加强发展的系统性、市场前瞻性、产品创新能力,以专注、极致的服务理念,为客户提供成都网站建设、网站设计 网站设计制作按需策划,公司网站建设,企业网站建设,高端网站设计,网络营销推广,外贸营销网站建设,信丰网站建设费用合理。

chmod u+x file.sh

执行脚本有三种方法:

1. ./file.sh

特点:开启bash子进程来执行,也就是开启额外的进程来进行,不影响原进程的变量、配置等

2. bash file.sh

特点:和./file.sh相同

3. source file.sh 或者 . file.sh

特点:在原bash进程中执行脚本。

第三种方法主要用于在脚本中切换用户su、切换目录cd等命令。

source 和 . 命令是相同的。

你可以搜索 source

补充,如何查看脚本运行是否开启了bash子进程

vim file.sh

写入

#!/bin/bash

#echo $$命令会输出bash进程ID

echo $$

保存并赋予可执行权限chmod u+x file.sh

在你的shell中输入,echo $$    屏幕输出4176

./file.sh  屏幕输出3600

bash file.sh 屏幕输出3984

source file.sh  屏幕输出4176 和 你直接在shell中输出的一样,说明是在同一个bash进程

linux脚本中执行命令

#!/bin/bash

#echo hi

DEBUG=0

case $1 in

想要启动的程序名)

DEBUG=1 ;;

esac

if [[  $DEBUG -eq 1  ]]; then

# 启动命令

./elasitcsearch -d

echo "程序已启动"

exit 10

else

echo 启动命令只能使用.想要启动的程序名)

exit 7

fi

不过我怎么觉得好奇怪呢。我没写过这种东西,我总感觉那里有问题。case 可以自己添加某些进程进去。这样子你不需要在程序目录存放只需要在你的家目录存放就行。没需要添加一个程序 就在case下添加进去就行。代码都差不多

如何执行linux下的脚本

linux

下执行

php

脚本时通常是可以使用以下命令:

#/usr/local/php/bin/php test.php为简化输入可把此php执行程序

copy

到系统命令目录下:

#cp /usr/local/php/bin/php /usr/sbin/验证:输入以下命令,如正确获取

php

版本,说明操作成功。

#php -v这样,以后再执行php脚本时可直接采用以下输入方式即可。

#php a.php

如何在linux中执行一个脚本

1.

如果是开机马上执行的脚本,可以将脚本写到rc.local中;

2.

如果是用户登录后自动执行脚本,可以将脚本写到相应的用户目录下“~/.bash_profile”,若脚本“~/.bash_profile”不存在,可以直接拷贝“/etc/profile”命名为“~/.bash_profile”;

3.

如果是要任一用户登录后自动执行脚本,可以将脚本写到“/etc/profile”中。

Linux Shell脚本的执行过程

用户登录时,将会取得一个 bash ,这个 bash 在系统中有一个全局唯一的ID,也就是进程的ID,使用命令 ps -ef 并配合 grep 来查看进程ID。 ps -ef|grep bash ,此命令还能查看进程对应的父进程ID,系统中所有进程的祖先进程都是INIT进程(进程ID=1),它是最先启动运行的。

回到 bash 进程,也就是我们的命令行界面,进程的执行都有其附属的执行环境,环境变量就属于其中之一。并且环境变量是可以完全被子进程继承的,也就是说,子进程可以使用父进程的环境变量,但是不能使用父进程的自定义变量。

简而言之: 子进程继承父进程的环境变量,不继承父进程的自定义变量。

shell脚本有4种执行方式,不同的执行方式可能导致结果不一致

四种方式的执行结果如下:

linux 中如何执行脚本?

ash

shell

脚本的方法有多种,现在作个小结。假设我们编写好的shell脚本的文件名为hello.sh,文件位置在/data/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中执行的。


分享名称:linux脚本调用命令 linux怎么调用脚本
文章分享:http://kswjz.com/article/hihcep.html
扫二维码与项目经理沟通

我们在微信上24小时期待你的声音

解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流