为了账号安全,请及时绑定邮箱和手机立即绑定

请问一下关于shell脚本 cat EOF while case的问题?麻烦大佬帮忙看看!

请问一下关于shell脚本 cat EOF while case的问题?麻烦大佬帮忙看看!

慕勒3428872 2021-10-06 11:07:33
#######################list_files() {cat <<EOFetc/hostsEOF}case "$1" incp1)list_files | while read FILE DUMMY; docp1_file $S/"$FILE"done;;cp2)list_files | while read FILE REPLACEMENT; doR=""[ -n "$REPLACEMENT" ] && R="$S/$REPLACEMENT"[ -f "$C/$S/$FILE" ] && cp2_file $S/"$FILE" "$R"done;;esac#######################这段脚本什么意思?
查看完整描述

2 回答

?
牧羊人nacy

TA贡献1862条经验 获得超7个赞

list_files 函数,读取 /etc/hosts 文件内容。
case语句根据脚本的第一个参数($1)来判断走下面的cp1分支还是cp2分支。
cp1分支:
读取/etc/hosts 文件中每行前两个字段分别赋值给FILE和DUMMY,然后调用cp1_file(可能是函数也可能是另一个脚本,这段代码中没出现,看不出来;同样$S是什么也看不出)。
cp2分支:
cp2_file和$S 是什么,同样也不知道。你给的代码不完整。

查看完整回答
反对 回复 2021-10-10
?
杨__羊羊

TA贡献1943条经验 获得超7个赞

就是执行脚本时带参数cp1或cp2就执行case中对应的程序段呗,你看看cp1_file和cp2_file分别是干嘛的大概就清楚了

查看完整回答
反对 回复 2021-10-10
  • 2 回答
  • 0 关注
  • 270 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信