Board logo

标题: [文本处理] 请教enabledelayedexpansion在linux的shell脚本有什么命令? [打印本页]

作者: netdzb    时间: 2024-3-26 19:22     标题: 请教enabledelayedexpansion在linux的shell脚本有什么命令?

enabledelayedexpansion选项在linux的shell脚本有什么命令啊?
作者: Batcher    时间: 2024-3-26 22:05

回复 1# netdzb


Linux的Shell脚本没有这个概念,请说说你遇到了什么问题?
作者: netdzb    时间: 2024-3-26 23:29

本帖最后由 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居然不支持!
作者: Batcher    时间: 2024-3-26 23:34

回复 3# netdzb


    请发一个完整的BAT代码看看你是怎样用延迟命令处理这种需求的?我帮你翻译成Shell试试
作者: netdzb    时间: 2024-3-27 07:10

回复 4# Batcher

enabledelayedexpansion
zip file.zip file1.txt \
file2.txt \
file3.txt  
windows平台我没有zip这个命令,不过这个写法应该是可以通过的
作者: Batcher    时间: 2024-3-27 08:18

回复 5# netdzb


    不是的,这种写法跟enabledelayedexpansion没有任何关系。就是CMD和Shell两种解释器在续行符及其用法上的不同。
作者: netdzb    时间: 2024-3-27 10:03

回复 6# Batcher

我想解决的问题是如何用zip工具把list.txt的文件清单打包,以前用的7z和rar,我网上没有找到具体的代码
作者: netdzb    时间: 2024-3-27 10:14

本帖最后由 netdzb 于 2024-3-27 10:16 编辑

回复 6# Batcher

我用这个写法不知道能否解决问题,
zip file.zip -@|cat list.txt
运行后弹出文件清单,但我不知道如何传给zip命令,linux是ctrl加什么键完成stdin的输入呢?
或者在list.txt的最后一行加上某个控制符号来完成参数的传递
作者: netdzb    时间: 2024-3-27 13:34     标题: 请教如何用zip命令对文件打包

list.txt是文件清单,均在当前目录下
作者: Batcher    时间: 2024-3-27 14:05

回复 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
复制代码

作者: netdzb    时间: 2024-3-27 14:45

回复 10# Batcher


谢谢解决了问题




欢迎光临 批处理之家 (http://www.bathome.net/) Powered by Discuz! 7.2