9AMC 发表于 2018-8-20 10:36:16

关于Shell脚本read传参问题

  Shell脚本传参有两种方式:
  方式1:shfile.sharg1 arg 2....
  方式2:read -p "提示"arg 1 arg2
  默认参数直接是以空格进行区分的,下面通过几个实例讲解一下传参遇到的问题及困惑
  方式一:通过脚本实例展示
# cat arg1.sh  
#!/bin/bash
  
funChag() {
  
echo $1 $2
  
}
  

  
main() {
  
echo $1 $2
  
funChag $1 $2
  
}
  
main $*
  测试:
# sh arg1.sh 1 2 5 8  
1 2
  
1 2
  
# sh arg1.sh 1
  
1
  
1
  脚本传参,无论怎样穿,都是按照顺序传参进去,按照空格分隔参数
  方式二:read传参
  测试脚本代码
# cat arg.sh  
#!/bin/bash
  

  
read -p "please input two int :" Num1 Num2
  
funChag() {
  
echo $1 $2
  
}
  

  
main() {
  
#echo $Num1 $Num2
  
funChag $Num1 $Num2
  
}
  
main $*
  测试1:read传参是传递一个参数
# sh arg.sh  
please input two int :6
  
6
  
6
  传入一个参数,$Num2默认接收到的是空;
  测试2:read传入多个参数(>=3)
# sh arg.sh  
please input two int :6 66 666
  
6 66 666      #
页: [1]
查看完整版本: 关于Shell脚本read传参问题