shell脚本传入参数
1. shell脚本如何传递给子脚本命令行参数
shell脚本如何传递给子脚本命令行参数
shell脚本可以使用getops来分析命令行参数,现在的一个使用场景是:
例如:
父脚本:
父脚本处理一个参数-t,如果-t的值是sub,那么调用sub.sh子脚本,然后把剩下的参数连同重写的-t参数传递给子脚本sub.sh。
子脚本:
子脚本的参数处理就没啥特殊的 了,和普通的脚本处理命令行参数一样。
运行例子:
限制:
2. 如何在php代码中 执行shell脚本时 给shell脚本传递参数
#include <stdio.h>
#include <stdlib.h>
main()
{
system("123.bat haha");
}
.bat里:
echo %1
执行后输出
haha
所以在system要执行的脚本名后面直接加上参数就可以了
3. shell脚本获取参数&在线执行shell脚本
本文介绍以下升携伏2个知识点,为后后续在工作过程中安装一吵携键安装脚本打好基础:
如下shell脚本中传入的参隐链数依次值如下:
如脚本 getopts.sh
执行 ./getopts.sh -a dd -b ,打印如下结果
如脚本 for.sh
有时候shell脚本可以放在http页面上,不用download,可以直接执行。
https://www.cnblogs.com/klb561/p/8933992.html
https://www.cnblogs.com/faberbeta/archive/2004/01/13/13559686.html
4. shell脚本怎么传给其他脚本参数
很明显,把 read删掉啊,用常规变量代替,别让从stdin读取了,很简单哦,试试,这样就可以自动初始化mysql啦。编译下mysql_secure_installation文件吧。
比如
read passwd
改成
passwd="123123"
就可以了。
因为read的用法也是从键盘输入读取然后存放到passwd中。
5. java怎么接收shell脚本传进来的参数
java main方法中的args数组,就是用来接收命令行执行时传入的参数
6. 简述shell的参数
我们可以在执行 Shell 脚本时,向脚本传递参数,脚本内获取参数的格式为:$n。n 代表一个数字,1 为执行脚本的第一个参数,2 为执行脚本的第二个参数,以此类推……
实例
以下实例我们向脚本传递三个参数,并分别输出,其中 $0 为执行的文件名:
#!/bin/bash
echo "Shell 传递参数实例!";
echo "执行的文件名:$0";
echo "第一个参数为:$1";
echo "第二个参数为:$2";
echo "第三个参数为:$3";
为脚本设置可执行权限,并执行脚本,输出结果如下所示:
$ chmod +x test.sh
$ ./test.sh 1 2 3
Shell 传递参数实例!
执行的文件名:./test.sh
第一个参数为:1
第二个参数为:2
第三个参数为:3
另外,还有几个特殊字符用来处理参数:
参数处理 说明
$# 传递到脚本的参数个数
$* 以一个单字符串显示所有向脚本传递的参数。 如"$*"用“"”括起来的情况、以"$1 $2 … $n"的形式输出所有参数。
$$ 脚本运行的当前进程ID号
$! 后台运行的最后一个进程的ID号
$@ 与$*相同,但是使用时加引号,并在引号中返回每个参数。 如"$@"用“"”括起来的情况、以"$1" "$2" … "$n" 的形式输出所有参数。
$- 显示Shell使用的当前选项,与set命令功能相同。
$? 显示最后命令的退出状态。0表示没有错误,其他任何值表明有错误。
#!/bin/bash
echo "Shell 传递参数实例!";
echo "第一个参数为:$1";
echo "参数个数为:$#";
echo "传递的参数作为一个字符串显示:$*";
执行脚本,输出结果如下所示:
$ chmod +x test.sh
$ ./test.sh 1 2 3
Shell 传递参数实例!
第一个参数为:1
参数个数为:3
传递的参数作为一个字符串显示:1 2 3
7. 如何传递参数给linux shell 脚本(当脚本从标准输入而不是从文件获取时)
sh 绝对路径/xxx.sh 参数1 参数2 参数3........参数n
---------------------------------------------------------------------------------
如果你保存临时文件的话,可以使用xargs
比如脚本文件为1.sh,而参数保存在args文件中,用一个命令得到参数内容
cat args
那么最后可以这样执行
cat args |xargs sh 1.sh
如果不打算保存临时文件,那你只好在脚本中写清楚要如何调用,参数有几个。
比如你使用2.sh调用1.sh,在2.sh 中写清楚
1.sh $arg1 $arg2这样就可以了。
当然脚本中的arg1,arg2也可以是最初的第一个脚本调用传递进来的,也可以是硬编码写死的。
8. 往shell脚本中传入参数
参数如下:
$# ----传递给程序的总的参数数目
$? ----上一个代码或者shell程序在shell中退出的情况,如果正常退出则返回0,反之为非0值。
$* ----传递给程序的所有参数组成的字符串。
$n ----表示第几个参数,$1 表示第一个参数,$2 表示第二个参数 ... $0 ----当前程序的名称
$@----以"参数1" "参数2" ... 形式保存所有参数
$$ ----本程序的(进程ID号)PID
$! ----上一个命令的PID