【发布时间】:2019-12-17 02:23:46
【问题描述】:
这个link 给出了如何在命令行中调用最后一个成功执行的命令的参数的指针。
我想从 shell 历史中访问特定命令的所有参数。
对我来说只有这种语法有效
ls f1 f2 f3
file !ls:1-3 --> file f1 f2 f3
而且,如果我使用 !* 应该给出前一个命令的所有参数会抛出错误
file !ls:!*
-bash: !: unrecognized history modifier
我只能使用这种语法(即最后执行命令的所有参数。
file !*
上述方法的问题是,如果我使用某个选项执行了 ls,例如:ls -l,然后是 file 命令会抛出不同的输出,因为在这种情况下,ls 的选项将被视为第一个参数。
【问题讨论】:
-
all the arguments (part of argument list)- 不清楚。您想要所有参数还是参数列表的一部分?在ls -l file命令中-l file是Bash理解中的参数。 -
啊,编辑并删除了“(参数列表的一部分)”部分。对困惑感到抱歉。这只是所有的论点
-
所有参数 但是如果你运行
ls -l f1 f2 f3你只想得到f1 f2 f3而不是-l f1 f2 f3对吧? -
-l是一个论点。 shell 不知道对待它与任何其他参数不同,ls只是因为领先的-而不同地对待它。
标签: bash