shell脚本调用shell脚本
① 如何在shell脚本中调用另一个shell的结果
可以将通用脚本获取的结果直接输出,比如你的通用脚本在/path/to/getDate.sh
内容比如如下:
echo "2013-02-26"
然消租银后在另外一个脚本里拿宴可以这样获得它的输出
Date=`sh /path/to/getDate.sh` # 注意这里不是引号,而是反引号就是Esc下面1左边的键型漏
现在Date变量的值就是"2013-02-26"
② 在执行a.sh这个shell脚本时会调用shell脚本b.sh,怎么通过a.sh给b.sh中环境变量重新赋值
使用 . 可以把另一个脚本读进来,,然后就可以引用其变量了
如
. /path/b.sh
b中的变量直接引用
③ 如何在shell脚本里调用另一个shell脚本
子shell变量传递给父shell,中间可以保存个临时文件让父shell去读。下边是一个子shell,传递给父shell的一个例子,仅做参考#!/bin/bash(subvar="helloshell"echo"$subvar">temp.txt)readpvar
④ ASP.NET 如何调用linux下的Shell脚本程序
ASP.NET可以通过调用Process类来启动燃判Shell脚本程序。具体步骤如下:1. 引入命名空间System.Diagnostics。2. 创建ProcessStartInfo对象,设置它皮源改的FileName属性为Shell脚本的路径,设置Arguments属性为Shell脚本的参数。3. 创建Process对象,设置它的StartInfo属性为上一步创建的ProcessStartInfo对象。4. 调用Process对象的Start方裂樱法启动Shell脚本程序。示例代码:```using System.Diagnostics;string scriptPath = "/usr/local/bin/test.sh";string arguments = "arg1 arg2 arg3";ProcessStartInfo startInfo = new ProcessStartInfo{ FileName = "/bin/bash", Arguments = $"-c \"{scriptPath} {arguments}\"", RedirectStandardOutput = true};Process process = new Process{ StartInfo = startInfo};process.Start();string output = process.StandardOutput.ReadToEnd();process.WaitForExit();```上面的代码启动了名为test.sh的Shell脚本程序,它的完整路径为/usr/local/bin/test.sh。脚本有三个参数:arg1、arg2和arg3。程序执行完毕后,可以通过process.StandardOutput属性获得输出结果。注意在调用Start方法后必须等待程序运行完毕,才能读取输出结果。⑤ shell脚本怎么调用其他shell脚本
在Shell中要如何调用别的shell脚本,或别的脚本中的变量,函数呢?
方法一: . ./subscript.sh
方法二: source ./subscript.sh
注意:
1.两个点之间,有空格,千万注意.
2.两个脚本不在同一目录,要用绝对路径
3.为简单起见,通常用第一种方法
例如:
复制代码代码如下:
main.sh #主脚本
subscripts.sh #子脚本,或者说被调脚本
[code]
[code]
###subscripts.sh 脚本内容如下:###
#!/bin/bash
string="Hello,World! \n"
复制代码代码如下:
###main.sh 脚本内容如下###
#!/bin/bash
. ./subscripts.sh
echo -e ${string}
exit 0
输出结果:
复制代码代码如下:
# chmod +x ./main.sh
# ./main.sh
Hello,World!
#
⑥ 如何运行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脚本怎么随机调用其他脚本
1. 计算出当前目录下以.sh结尾的脚本数目(假设头脚本不在这个文件夹里):num=`ls *.sh|wc -l`
2. 获取当前秒数:sec=`date +%s`
3. 基于脚本数目计算随机数(范围1~$num):randNum=`expr $sec % $num + 1`
4. 根据随机数调用脚本:sh /path/`ls|sed -n ${randNum}p`
⑧ Shell脚本中实现hbase shell命令调用
为了优化性能,大数据平台上的HBase表需要在脚本跑批过程中对创建的索引进行rebuild,因此说明下如何在shell中实现hbase语句调用。
常规操作,在操作前需要在shell中先获取kerbores安全认证权限:
kinit user -kt /user.keytab
使用 << (重定向输入符号)
将hbase的命令嵌入到shell中,可以在shell中如下书写:
其中, EOF 也可以换成其他任意的字符,大小写不论,只要成对出现即可:
编写执行命令执行:
hbase shell firstbaseshell.txt
⑨ 如何在shell脚本中调用另一个shell的结果
可以将通用脚本获取的结果直接输出,比如你的通用脚本在/path/to/getDate.sh
内容比如如下:
echo
"2013-02-26"
然后在另外一个脚本里可以这样获得它的输出
Date=`sh
/path/to/getDate.sh`
#
注意这里不是
引号
,而是反引号就是Esc下面1左边的键
现在Date变量的值就是"2013-02-26"
⑩ linux shell脚本执行命令详解
在Linux下,如果你需要执行shell脚本,那么应该使用那个命令呢?下面由我为大家整理了linux shell脚本执行命令的相关知识,希望对大家有帮助!
linux shell脚本执行
linux shell脚本执行方法一: 切换到shell脚本所在的目录(此时,称为工作目录)执行shell脚本:
cd /data/shell
./hello.sh
./的意思是说在当前的工作目录下执行hello.sh。如果不加上./,bash可能会响应找到不到hello.sh的错误信息。因为目前的工作目录(/data/shell)可能不在执行程序默认的搜索路径之列,也就是说,不在环境变量PASH的内容之中。查看PATH的内容可用 echo $PASH 命令。现在的/data/shell就不在环境变量PASH中的,所以必须加上./才可执行。
linux shell脚本执行方法二: 以绝对路径的方式去执行bash shell脚本:
/data/shell/hello.sh
linux shell脚本执行方法三: 直接使用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路径自然也好理解了啊。
linux shell脚本执行方法四: 在当前的shell环境中执行bash shell脚本:
cd /data/shell
. hello.sh
或
cd /data/shell
source hello.sh
前三种方法执行shell脚本时都是在当前shell(称为父shell)开启一个子shell环境,此shell脚本就在这个子shell环境中执行。shell脚本执行完后子shell环境随即关闭,然后又回到父shell中。而方法四则是在当前shell中执行的。