Ⅰ 如何给shell脚本传参数
from:Linux命令行与shell脚本编程大全.第3版
向shell脚本传递数据的最基本方法是使用命令行参数。命令行参数允许在运行脚本时向命令行添加数据。
$ ./addem 10 30
本例向脚本addem传递了两个命令行参数( 10和30)。脚本会通过特殊的变量来处理命令行参数。下面是在shell脚本中使用单个命令行参数的简单例子。
$cattest1.sh
#!/bin/bash
#usingonecommandlineparameter
#
factorial=1
for((number=1;number<=$1;number++))
do
factorial=$[$factorial*$number]
done
echoThefactorialof$1is$factorial
$
$./test1.sh5
Thefactorialof5is120
$
Ⅱ linux 调用脚本怎么传脚本参数
Linux shell脚本开始执行时,系统会初始化一些脚本的环境变量和参数变量,这些变量是可以直接使用的,下面是一些参数变量:
$1,$2,$3......:代表脚本程序的参数,脚本有几个参数数字就到几;
那$0代表什么呢?当然是脚本的名字了
还有和脚本参数有关的一个脚本环境变量:$#
它代表传递给脚本的参数个数。
知道了这些,你就可以在你编写的脚本内编写处理脚本参数的代码,一旦你的脚本有了对参数的处理,你就可以这样调用有参数的脚本:
./脚本名 参数1 参数2......
参数和脚本名、参数和参数之间用空格分开,和使用shell命令的格式是一样的。
Ⅲ 如何向expect脚本里面传递参数
expect是一个用来实现自动交互功能的工具,使用expect-send来实现交互过程。脚本的执行方法与bash shell不一样,如:expect example.sh
向一个脚本传递参数,bash shell是使用$1,$2...来接收参数的,而epxect则将脚本的执行参数保存在数组$argv中,在脚本中一般将其赋值给变量:set 变量名 [lindex $argv 参数]
实例:
写一个自动登陆远程主机的脚本,通过参数传递主机名,帐户,密码
1)编写脚本
#!/usr/bin/expect
set ip [lindex $argv 0]
set username [lindex $argv 1]
set passwd [lindex $argv 2]
spawn ssh -l $username $ip
expect {
"yes/no" { send "yes\r";exp_continue }
"password:" { send "$passwd\r" }
}
#expect eof
interact
注意:若登陆后便退出远程终端,则写expect eof即可。
2)执行脚本
expect autologin.sh 172.24.6.29 root redhat
Ⅳ 怎样给lua脚本传递参数和脚本怎样接受这些参数
两种方式:
1、脚本内定义全局函数(非local的), 然后在别的脚本require这个脚本后直接通过名称和参数进行调用(类似c函数的调用)
2、脚本内定义一个message_handler的入口函数(类似main函数),这个入口函数接受一个msg和一系列的params。然后别的脚本或函数通过postmessage或者sendmessage函数。向指定脚本传递参数msg和params,进而进行处理