找回密码
 注册
搜索
[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
查看: 25610|回复: 10

[文本处理] 请教enabledelayedexpansion在linux的shell脚本有什么命令?

[复制链接]
发表于 2024-3-26 19:22:50 | 显示全部楼层 |阅读模式
enabledelayedexpansion选项在linux的shell脚本有什么命令啊?
发表于 2024-3-26 22:05:34 | 显示全部楼层
回复 1# netdzb


Linux的Shell脚本没有这个概念,请说说你遇到了什么问题?
 楼主| 发表于 2024-3-26 23:29:50 | 显示全部楼层
本帖最后由 netdzb 于 2024-3-26 23:33 编辑

回复 2# Batcher

我遇到的问题是zip打包文件续行续不了

zip file.zip file1.txt file2.txt file3.txt
没问题

写成续续行就有问题
zip file.zip \
file1.txt \
file2.txt \
file3.txt

就有问题

非要写成
zip file.zip file1.txt \
file2.txt \
file3.txt
虽然不影响使用,想到批处理可以用延迟命令解释来解决的,linux居然不支持!
发表于 2024-3-26 23:34:57 | 显示全部楼层
回复 3# netdzb


    请发一个完整的BAT代码看看你是怎样用延迟命令处理这种需求的?我帮你翻译成Shell试试
 楼主| 发表于 2024-3-27 07:10:04 | 显示全部楼层
回复 4# Batcher

enabledelayedexpansion
zip file.zip file1.txt \
file2.txt \
file3.txt  
windows平台我没有zip这个命令,不过这个写法应该是可以通过的
发表于 2024-3-27 08:18:02 | 显示全部楼层
回复 5# netdzb


    不是的,这种写法跟enabledelayedexpansion没有任何关系。就是CMD和Shell两种解释器在续行符及其用法上的不同。
 楼主| 发表于 2024-3-27 10:03:41 | 显示全部楼层
回复 6# Batcher

我想解决的问题是如何用zip工具把list.txt的文件清单打包,以前用的7z和rar,我网上没有找到具体的代码
 楼主| 发表于 2024-3-27 10:14:22 | 显示全部楼层
本帖最后由 netdzb 于 2024-3-27 10:16 编辑

回复 6# Batcher

我用这个写法不知道能否解决问题,
zip file.zip -@|cat list.txt
运行后弹出文件清单,但我不知道如何传给zip命令,linux是ctrl加什么键完成stdin的输入呢?
或者在list.txt的最后一行加上某个控制符号来完成参数的传递
 楼主| 发表于 2024-3-27 13:34:45 | 显示全部楼层

请教如何用zip命令对文件打包

list.txt是文件清单,均在当前目录下
发表于 2024-3-27 14:05:11 | 显示全部楼层
回复 8# netdzb


方法1:
  1. cat list.txt | zip V1.zip -@
复制代码
方法2:
  1. xargs -a list.txt -I {} zip V2.zip {}
复制代码
方法3
  1. for i in $(cat list.txt); do
  2.     zip V3.zip $i
  3. done
复制代码
 楼主| 发表于 2024-3-27 14:45:03 | 显示全部楼层
回复 10# Batcher


谢谢解决了问题
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-18 04:09 , Processed in 0.020215 second(s), 8 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表