shell - 带有参数输出的 Bash 脚本
问题描述
我有这个任务
编写一个 shell 脚本 evenparam.sh,它有偶数个命令行 >parameters,所以它的语法是 evenparam.sh para1 para2 [para3 para4] ... 脚本应该生成一个 para1 = para2, para3 = 形式的输出>para4, .... 如果程序未正确调用,则在 stderr 上发出使用消息并以 > 1 的返回值结束脚本。
anz=$#
counter=1
if [ $(($# % 2)) -eq 0 ]; then
for para in $@; do
pos1=$counter
pos2=$(($counter+1))
echo $pos1=$pos2
counter=$(($counter+2))
if [ $counter = $(($# + 1)) ]; then
exit 0
fi
done
fi
而且我没有任何信息可以做到这一点有人可以帮助我吗?
解决方案
以下演示功能见 bash 手册man bash
,供参考
#!/bin/bash
(( $#%2==0 )) || {
echo "usage: $0 para1 para2 [para3 para4] ..."
exit 1
}
# either using array
args=( "$@" )
for (( i=0;i<$#;i+=2 )); do
echo "${args[i]} = ${args[i+1]}"
done
# or consuming arguments
while (( $#>0 )); do
echo "$1 = $2"
shift 2
done
# otherwise because printf has loop, just
printf "%s = %s\n" "$@"
推荐阅读
- apache-spark - 查询开始时使用结构化流从 Kafka 主题的开头读取
- python-3.x - python脚本中的回显命令
- javascript - 成功消息未显示 ASP.NET MVC
- printf - 为什么printf没有fflush正常输出
- javascript - 如何从 javascript 与 liveview 正确通信
- python-3.x - 用变量替换文本文件中的特定行
- android - 如何在 React Native 的 Picker 中换行?
- html - Excel 365 VBA 从网站抓取数据时出现问题
- oop - 通过不同的文件向 PyQt Designer 生成的代码添加额外的功能
- html - Scrapy,Xpath,没有结果?