mbtmxk 2022-05-22 10:19 采纳率: 0%
浏览 39

Linux shell中函数入参的问题

请教下,如果函数入参“$1”表示第一个参数,那么请看如下代码:

#!/bin/sh

yes_or_no() {
echo "Is your name $1 ?"
while true
do
echo -n "Enter yes or no: "
read x

case "$x" in
y | yes ) return 0;;
n | no ) return 1;;
* ) echo "Enter yes or no: "
esac
done
}

echo "Original parameter are $"
if yes_or_no "$
"
then
echo "hi $1,nice name!"
else
echo "never mind"
fi
exit 0

输入如下:./testfunction.sh Will Backins
按照我的理解正确的输出为:
Original parameter are Will Backins
Is your name Will ?
Enter yes or no: yes
hi Will,nice name!
但是实际的输出是:
Original parameter are Will Backins
Is your name Will Backins ?
Enter yes or no: yes
hi Will,nice name!

不明白echo "Is your name $1 ?"里面的$1 不是代表第一个参数吗?那不应该是will吗?
请大家帮忙指导下,谢谢!

  • 写回答

1条回答 默认 最新

  • 我叫她狗子 2022-05-23 10:16
    关注

    你代码复制错了吧

    评论

报告相同问题?

问题事件

  • 创建了问题 5月22日

悬赏问题

  • ¥30 求一段fortran代码用IVF编译运行的结果
  • ¥15 深度学习根据CNN网络模型,搭建BP模型并训练MNIST数据集
  • ¥15 lammps拉伸应力应变曲线分析
  • ¥15 C++ 头文件/宏冲突问题解决
  • ¥15 用comsol模拟大气湍流通过底部加热(温度不同)的腔体
  • ¥50 安卓adb backup备份子用户应用数据失败
  • ¥20 有人能用聚类分析帮我分析一下文本内容嘛
  • ¥15 请问Lammps做复合材料拉伸模拟,应力应变曲线问题
  • ¥30 python代码,帮调试,帮帮忙吧
  • ¥15 #MATLAB仿真#车辆换道路径规划