当前位置:首页 » 编程软件 » shell脚本中调用shell

shell脚本中调用shell

发布时间: 2022-03-12 12:49:05

‘壹’ 如何运行shell脚本

编写好的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脚本里调用另一个shell脚本

子shell变量传递给父shell,中间可以保存个临时文件让父shell去读。下边是一个子shell,传递给父shell的一个例子,仅做参考#!/bin/bash(subvar="helloshell"echo"$subvar">temp.txt)readpvar

‘叁’ 在执行a.sh这个shell脚本时会调用shell脚本b.sh,怎么通过a.sh给b.sh中环境变量重新赋值

使用 . 可以把另一个脚本读进来,,然后就可以引用其变量了

. /path/b.sh

b中的变量直接引用

‘肆’ shell从外部读入参数调用另一个shell脚本的问题

调用的时候给$args加双引号就行了
sh other.sh "$args"

任何字符串变量,在使用的时候最好都加上双引号。

‘伍’ 在shell脚本中调用函数,如果函数中使用了$1这样的参数

是调用这个函数时,传进去的参数~~~
[root@localhost test]# bash shell.sh
haha

[root@localhost test]# cat shell.sh
#!/bin/bash
function fun {
echo $1
}
fun haha

‘陆’ 如何在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/shellbash hello.sh或码码如下:cd /data/shellsh hello.sh注意,若是以方法三的方式来执行,那么,可以不必事先设定shell的执行权限,甚至都不用写shell中的第一行(指定bash路径)。因为方法三是将hello.sh作为参数传给sh(bash)命令来执行的。这时不是hello.sh自己来执行,而是被人家调用执行,所以不要执行权限。那么不用指定bash路径自然也好理解了啊,呵呵……。方法四:在当前的shell环境中执行bash shell脚本:码码如下:cd /data/shell. hello.sh或码码如下:cd /data/shellsource hello.sh前三种方行shell脚本时都是在当前shell(称为父shell)开启一个子shell环境,此shell脚本就在这个子shell环境中执行。shell脚本执行完后子shell环境随即关闭,然后又回到父shell中。而方法四则是在当前shell中执行的。

‘柒’ shell脚本中调用脚本

里面有个错误,time 是个命令,不能用来做变量,这是致命的!
----------------
我给个测试脚本你试一下:
.............
#!/bin/sh
flag=0
plan_hour=19
plan_minutes=47
plan_time=`echo -n "$plan_hour";echo -n "$plan_minutes"`
clear

while true
do
hour=`date +"%H"`
minutes=`date +"%M"`
seconds=`date +"%S"`
time1=`echo -n "$hour";echo -n "$minutes"`
clear
echo -n "现在的时间为: "
echo -n $hour
echo -n :
echo -n $minutes
echo -n :
echo -n $seconds

if [ "$time1" -eq "$plan_time" ]; then
flag=1
clear
echo -n "3秒后关闭 1.sh"
sleep 3
ps -ef|grep "sh 1.sh"|grep -v grep|awk '{print $2}'|xargs kill
clear
echo "1.sh 已经结束;2.sh 1分钟后唤醒 1.sh"
sleep 59
fi

sleep 1
if [ $flag -eq 1 ]; then
sh 1.sh
exit 0
fi

done
===============
脚本一开始预定关闭 1.sh 的时间。
在未到定时时,就显式时间。
定时时间到,给出杀死 1.sh 的提示,3秒后杀死,然后再 1 分钟后再唤醒 1.sh 进程。唤醒 1.sh 后,2.sh 也就跟着退出了。
------------------------------------------------------
2.sh 时间设对了是可以杀死 1.sh 的。
如果按照你的要求,我觉得写个程序应该更好处理些,参考代码如下:
;;;;;;;;;;;;;;;;;;;;;;;;;;;;
#include <stdio.h>
#include <sys/types.h>
#include <unistd.h>
#include <stdlib.h>
#include <signal.h>

int main()
{
pid_t pid;
while(1) {
pid = fork();

switch(pid) {
case -1:
perror("fork failed");
exit(1);
case 0:
while(1) {
printf("I'm 1.sh ,I'm running........\n");
sleep(1);
}

default:
sleep(5);
kill(pid, SIGKILL);
printf("child over\n");
sleep(40);
break;
}
}
return 0;
}
;;;;;;;;;;;;;;;;;;;;;;;;;;;;
上面程序,先 fork() 出一个子进程,相当于 1.sh,然后你在子进程里做你要做的事情。父进程在 5s 后(相当于每天预设的一个时间,每天的时间设定可用相关的函数进行设置检测)杀死子进程,然后睡眠 40s,醒来后,又循环 fork() 同样的子进程做同样的事情。

‘捌’ shell脚本里的函数怎么调用

在代码复用及可维护性方面,函数有着巨大的优势,因此,把常用功能封装成函数是一件非常平常的事。shell脚本中,怎么定义函数及使用函数:
函数定义:
# func_name 函数名
function func_name(){
#函数体内容
}

# func_name 函数名
func_name(){
#函数体内容
}
函数调用:
func_name parm
函数体中,可以通过$1 $2 ...$9接受函数调用中的变量
函数可以通过return 返回函数执行的结果

可以通过下面一个简单例子,来看下在shell脚本中怎么定义使用函数:
1、在/root/bin目录下新建函数文件main.fun
vim /root/bin/main.fun
2、在main.fun文件中编写函数findit内容
#!/bin/sh
function findit(){
if [ $# -lt 1 ] ; then #判断函数参数个数
echo "Usage: findit filename"
return 1
fi
for loop #遍历调用函数的参数
do
find $HOME -name $loop -print
done
return 0
}
3、Shell中载入函数文件/root/bin/main.fun
. /root/bin/main.fun
4、检查载入文件
set
set命令将在shell中显示所有的载入函数
5、调用函数
findit mysql php #在home 目录查找文件mysql 和文件php

‘玖’ 如何在shell脚本中调用另一个shell的结果

假定获取时间的脚本叫做getdate.sh

再其他的脚本里面这么写就可以了:
date=$(/path/to/getdata.sh)

‘拾’ 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

热点内容
scratch少儿编程课程 发布:2025-04-16 17:11:44 浏览:637
荣耀x10从哪里设置密码 发布:2025-04-16 17:11:43 浏览:366
java从入门到精通视频 发布:2025-04-16 17:11:43 浏览:82
php微信接口教程 发布:2025-04-16 17:07:30 浏览:308
android实现阴影 发布:2025-04-16 16:50:08 浏览:789
粉笔直播课缓存 发布:2025-04-16 16:31:21 浏览:339
机顶盒都有什么配置 发布:2025-04-16 16:24:37 浏览:210
编写手游反编译都需要学习什么 发布:2025-04-16 16:19:36 浏览:810
proteus编译文件位置 发布:2025-04-16 16:18:44 浏览:364
土压缩的本质 发布:2025-04-16 16:13:21 浏览:590