The SHELL_PARAMETERS_PROTOCOL used by the pci command lists both the command line and the StdIn for the command. I think that you could check the StdIn for the file specified and then change the behavior.
If we really require a parameter to enable some sort of file input mode, the spec says that implementers can freely add -_<blah> parameters. In the past these have even been moved to standard parameters in future versions of the spec (-_exit is an example that springs to mind for me). I also agree that your sample NSH file is definitely the quickest way to get a solution in this case. -Jaben > -----Original Message----- > From: jim.dai...@dell.com [mailto:jim.dai...@dell.com] > Sent: Thursday, September 21, 2017 6:32 AM > To: Carsey, Jaben <jaben.car...@intel.com> > Cc: edk2-devel@lists.01.org; tiger...@zhaoxin.com > Subject: RE: [edk2] Shell input redirection question > Importance: High > > I think the technicality here is that given "pci < inputfile", no > parameters are passed to the pci command, so it should, according to > the spec, display all the devices. > > Another problem may be that in the "pci < inputfile" case, the pci > command has no way to know that its input is being redirected and that > it should behave differently than normal. I may be wrong about that > point; I know it is possible, but it might require some sort of generic > change or addition to the shell's behavior. > > A different tack would be to add (in a future spec version) a command > line argument that simply indicated to pci that its input (commands) > are in some file (e.g. "pci -cmdfile inputfile"). Of course, if that > were to happen, the new spec should also specify the format of the > command file's content. > > A simple way to do what Tiger was trying and that works right now is > to create a shell script instead of an input file: > > @echo -off > pci 00 00 01 -i > pci 00 00 02 -i > > Regards, > Jim > > -----Original Message----- > From: Carsey, Jaben [mailto:jaben.car...@intel.com] > Sent: Thursday, September 21, 2017 8:11 AM > To: Dailey, Jim <jim_dai...@dell.com>; tiger...@zhaoxin.com > Cc: edk2-devel@lists.01.org > Subject: RE: [edk2] Shell input redirection question > > If the requirement for PCI to display the information when there are no > parameters present, I see no reason that it could not also use a file for > input. > i.e. "pci" must act according to the spec, but "pci < inputfile" is not > prohibited. > I think that as no code currently uses PCI with file input as long as current > behavior still works it should be fine. > > I would think that would be a great improvement for the PCI command. > > -Jaben > > > -----Original Message----- > > From: edk2-devel [mailto:edk2-devel-boun...@lists.01.org] On Behalf Of > > jim.dai...@dell.com > > Sent: Thursday, September 21, 2017 4:52 AM > > To: tiger...@zhaoxin.com > > Cc: edk2-devel@lists.01.org > > Subject: Re: [edk2] Shell input redirection question > > Importance: High > > > > The shell's pci command was not written to read from standard input. It > > expects all its input on the command line. > > > > I would say in general that if you execute a command and pass it no > > parameters, and it then prompts you in some way for input, then that > > command will likely accept input redirected from a file. > > > > If you execute pci without any parameters, it simply lists all the > > devices in the system and terminates, so it clearly is not prepared to > > read from standard input (or a redirected file). > > > > It is strictly up to whomever writes a program/command whether they do > > so in a manner that allows it to accept input from standard input. For > > example, I have written a grep utility for the shell that expects one or > > more filenames to search to be on the command line; however, if there > > are no filenames on the command line, the utility searches standard > > input. > > > > Regards, > > Jim > > > > -----Original Message----- > > From: edk2-devel [mailto:edk2-devel-boun...@lists.01.org] On Behalf Of > > Tiger Liu > > Sent: Thursday, September 21, 2017 1:11 AM > > To: edk2-devel@lists.01.org > > Subject: [edk2] Shell input redirection question > > > > Hi, experts: > > I have a question about input redirection in Shell environment. > > > > Take pci command as sample. > > I wrote a txt file(file name is : inputsample.txt), its content is: > > 00 00 01 -i > > 00 00 02 –i > > > > It means I just wanted to dump D0F1/D0F2’s config space. > > > > Then, I use this command sequence in shell : > > pci <a inputsample.txt > > > > But it seems not recognize this input file’s content. > > > > Why? > > > > Thanks > > > > best wishes, > > > > > > 保密声明: > > 本邮件含有保密或专有信息,仅供指定收件人使用。严禁对本邮 > 件 > > 或其内容做任何未经授权的查阅、使用、复制或转发。 > > CONFIDENTIAL NOTE: > > This email contains confidential or legally privileged information and is > > for > the > > sole use of its intended recipient. Any unauthorized review, use, copying or > > forwarding of this email or the content of this email is strictly > > prohibited. > > _______________________________________________ > > edk2-devel mailing list > > edk2-devel@lists.01.org > > https://lists.01.org/mailman/listinfo/edk2-devel > > _______________________________________________ > > edk2-devel mailing list > > edk2-devel@lists.01.org > > https://lists.01.org/mailman/listinfo/edk2-devel _______________________________________________ edk2-devel mailing list edk2-devel@lists.01.org https://lists.01.org/mailman/listinfo/edk2-devel