一、获取输入
1.命令行参数
#!/bin/bash
name=`basename $0` $0参数获取shell在命令行启动的程序的名字,basename命令去掉路径
echo "current command is $name"
if [ -n "$1" ] && [ -n "$2" ] $1、$2分别代表第一个参数与第二个参数,第9个变量后,需加花括号
then 如${10},-n判断参数是否非空
sum=$[ $1 + $2 ]
echo "$1+$2=$sum"
else
echo "please input two number"
fi
[root@localhost hunterno4]# ./add 3 4 参数若含空格需加引号
current command is add
3+4=7
2.特殊参数变量
1)$#
#!/bin/bash
param=$#
echo "total parameter is $#" 脚本运行时命令行参数的个数
echo "the last parameter is ${!#}" 不能在花括号内使用美元符,需要换成!号
2)$*与$@
#!/bin/bash
count=1
for param in "$*"
do
echo "\$* parameter-- $param"
done
for param in "$@"
do
echo "\$@ parameter-- $param"
done
# ./param one two three
$* parameter-- one two three $*将命令行中的所有参数当单个单词保存
$@ parameter-- one $@将命令行中的所有参数当同一字符串中的多个独立的单词
$@ parameter-- two
$@ parameter-- three
3.移动变量
#!/bin/bash
count=1
while [ -n "$1" ]
do
echo "current \$1 is $1"
count=$[ $count + 1 ]
shift 使用shift命令,默认情况每个参数变量减一,shift n 则移n位
done
1.命令行参数
#!/bin/bash
name=`basename $0` $0参数获取shell在命令行启动的程序的名字,basename命令去掉路径
echo "current command is $name"
if [ -n "$1" ] && [ -n "$2" ] $1、$2分别代表第一个参数与第二个参数,第9个变量后,需加花括号
then 如${10},-n判断参数是否非空
sum=$[ $1 + $2 ]
echo "$1+$2=$sum"
else
echo "please input two number"
fi
[root@localhost hunterno4]# ./add 3 4 参数若含空格需加引号
current command is add
3+4=7
2.特殊参数变量
1)$#
#!/bin/bash
param=$#
echo "total parameter is $#" 脚本运行时命令行参数的个数
echo "the last parameter is ${!#}" 不能在花括号内使用美元符,需要换成!号
2)$*与$@
#!/bin/bash
count=1
for param in "$*"
do
echo "\$* parameter-- $param"
done
for param in "$@"
do
echo "\$@ parameter-- $param"
done
# ./param one two three
$* parameter-- one two three $*将命令行中的所有参数当单个单词保存
$@ parameter-- one $@将命令行中的所有参数当同一字符串中的多个独立的单词
$@ parameter-- two
$@ parameter-- three
3.移动变量
#!/bin/bash
count=1
while [ -n "$1" ]
do
echo "current \$1 is $1"
count=$[ $count + 1 ]
shift 使用shift命令,默认情况每个参数变量减一,shift n 则移n位
done