开发者社区> 问答> 正文

基于shell实现的批量文件名修改脚本出错? 400 请求报错 

我要批量修改arm-none-linux-xxx 的文件为 arm-my-linux-xxx, 要写一个shell脚本,用创建软链接的方式来实现, 以下脚本出错在哪了, 请大家指正, 谢谢!
#!/bin/bash
OLD_PREFIX=arm-none-linux-
NEW_PREFIX=arm-my-linux-

# 在当前目录找出所有要修改的文件, 用sed替换,
# 取出后缀名,这样就生成我要创建软链接的新的文件名集合
sets=$(ls | grep  "${OLD_PREFIX)*"  | sed 's/${OLD_PREFIX}//g' ) 

echo ${sets}  # 这里输出结果居然为空? 为何?

# 针对每一个新的文件名, 开始创建, 并要求显示过程和结果
for  s  in ${sets}
do
    ln  -sf  ./${OLD_PREFIX}${s}  ${NEW_PREFIX}${s}
    echo "${s} file created successfully!"
done

展开
收起
kun坤 2020-05-30 15:06:51 619 0
1 条回答
写回答
取消 提交回答
  • 已解决, 原来
    sets=$(ls | grep  "${OLD_PREFIX)*"  | sed "s/${OLD_PREFIX}//g" ) 

    要用双引号 ######

    引用来自“TymonHuang”的评论

    已解决, 原来 sets=$(ls | grep  "${OLD_PREFIX)*"  | sed "s/${OLD_PREFIX}//g" )  要用双引号 经检验, 该答案可靠######
    2020-05-30 15:06:57
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
Shell 脚本速查手册 立即下载
低代码开发师(初级)实战教程 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载