将参数传递给bash脚本

时间:2015-04-19 18:18:24

标签: bash

我有这个简单的bash脚本:

#!/bin/sh
(echo "AUTH xxx xxx"
sleep 3
number=0161XXXXXXX 
echo "ACTI $number"
sleep 3
echo "SET $number 1 S:$number@x.x.x.x"
sleep 3
echo "STAT $number"
sleep 3
echo "QUIT") | telnet xxx.xxx 777

我想在调用脚本时将数字作为参数传递,即

bash number.sh 0161XXXXXXX

我该怎么做?

由于

2 个答案:

答案 0 :(得分:3)

使用positional parameters。您也可以直接使用$1代替存储在变量中。

#!/bin/sh

arg=$1
(echo "AUTH xxx xxx"
sleep 3
number=$arg
echo "ACTI $number"
sleep 3
echo "SET $number 1 S:$number@x.x.x.x"
sleep 3
echo "STAT $number"
sleep 3
echo "QUIT") | telnet xxx.xxx 777

答案 1 :(得分:1)

来自bash手册页:

  

参数

     

如果参数处理后参数仍然存在,则-c和   提供了-s选项,假设第一个参数是   包含shell命令的文件的名称。如果调用bash   这种方式,$ 0设置为文件名和位置   参数设置为其余参数。 Bash读取并执行   来自此文件的命令,然后退出。 Bash的退出状态是退出   脚本中执行的最后一个命令的状态。如果没有命令   执行后,退出状态为0.首先尝试打开   文件在当前目录中,如果没有找到文件,那么   shell在PATH中搜索脚本中的目录。

所以第一个参数可以被称为$ 1,第二个参数可以被称为$ 2(直到$ 9,如果你需要以其他方式处理它,例如使用shift ...)