【问题标题】:What is the reson my expansion is not working我的扩展不起作用的原因是什么
【发布时间】:2019-05-15 23:45:33
【问题描述】:

我有this 代码在给定一些参数的情况下生成随机目录结构,并且运行违反 eval 限制,所以我尝试使用 Xargs 来按照 @TheOtherGuy 解决问题,但我做错了。

DIRCMD="mkdir -p $OUTDIR/\"$FLDIR\"/$FLCHILDREN"

在 VS CODE 中观看

declare -- DIRCMD="mkdir -p ./rndpath/\"LUl\"/{\"KYh\",\"NQ \",\"NU\",\"Hjn\",\"lS\",\"TEW\"}/{\"Rbf\",\"DU\",\"N4\",\"Da7o\",\"aNK\",\"2oS\"}"

然后做

eval "$DIRCMD" 

除非我达到 eval 扩展限制,否则一切正常。

根据@ThatOtherGuy 试图解决我尝试过的限制

dircmd1="printf "%s\0 " $OUTDIR/\"$FLDIR\"/$FLCHILDREN"
and 
eval "$dircmd1" | xargs -0 mkdir -p

[admin@119 rndpath]$ tree -a --dirsfirst -s ./
./
└── [       4096]  LUl
    └── [       4096]  {KYh,NQ,NU,Hjn,lS,TEW}
        └── [       4096]  {Rbf,DU,N4,Da7o,aNK,2oS}

我做错了什么?

【问题讨论】:

  • 我尝试正确格式化代码,看看是否有帮助,但我仍然不知道你的代码应该做什么,或者你得到什么错误消息或其他失败,或者你的问题是。请尝试澄清您的问题并提供真实的minimal reproducible example。如果不清楚,请参阅How to Ask
  • 所以你想要mkdir -p LUl/{Kyh,NQ,NU,Hjn,lS,TEW}/{Rbf,DU,N4,Da7o,aNK,2oS}的参数化版本?
  • 我找到了答案... DIRCMD="printf \"%s\0\" ./\'$FLDIR\'/$FLCHILDREN" 然后 eval "$DIRCMD" | xargs -0 mkdir -p

标签: bash


【解决方案1】:

这就是答案 DIRCMD="printf \"%s\0\" ./\'$FLDIR\'/$FLCHILDREN" 然后 eval "$DIRCMD" | xargs -0 mkdir -p 不知何故,没有强烈反对它不起作用。 我不知道为什么,很高兴知道。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-03-24
    • 1970-01-01
    • 2014-08-07
    相关资源
    最近更新 更多