我正在尝试将文件的内容传递给bash命令,但出现以下错误。这是代码段:
for QM in QM/*
do
sudo -u mqm runmqsc "$(basename -s .txt "$QM")" < cat $(basename $QM)
done
+ sudo -u mqm runmqsc MSGSVCDC MSGSVCDC.txt/ var / lib / cloud / instance / scripts / part-001:第51行:cat:无此类文件或目录
有人可以让我知道如何解决它。
[使用结构< cat $(basename $QM)
,您曾幻想过发明UUOC的变体。但是将文件内容传递给bash命令作为标准输入,重定向只是<$QM
,因为在此应用basename
是错误的。如果在某些情况下确实需要通过basename
之类的命令对文件名进行预处理,则最可移植的语法(较早的Shell也可以理解)为<`basename $QM`
。在Bash中,当然<$(basename $QM)
也可以。