我可以在Linux命令行中運行以下命令,它正確地列出所有具有ABC-和XYZ-前綴的文件:Linux bash:如何正確使用eval命令?
ls {ABC-,XYZ-}*.xml
Result: ABC-01.xml ABC-02.xml ABC-03.xml XYZ-01.xml XYZ-02.xml
現在,我計算過,我如下可以使用一個變量:
file_pfx={ABC-,XYZ-}
,然後使用該變量在 「LS」 命令 「EVAL」 組合:
eval 'ls ${file_pfx}*.xml'
Result: ls: {ABC-,XYZ-}*.xml: No such file or directory
我在做什麼錯?
感謝
您不能支撐expressioni存儲在一個變量*。請參閱[手冊中的擴展順序](https://www.gnu.org/software/bash/manual/bashref.html#Shell-Expansions)。 –
在實際使用'eval'之前,請參閱[「爲什麼應該在Bash中避免使用eval,我應該使用什麼?」](https://stackoverflow.com/questions/17529220/why-should-eval-be-avoided而不是我應該使用的) – John1024
感謝您提供完整的測試用例和輸出! +1 –