Linux 使bash接受函数参数
因此,我有一个名为myCMD的bash脚本,它以function()的形式将参数字符串包含在其中 但是,当我进入命令行时:Linux 使bash接受函数参数,linux,bash,shell,command-line,terminal,Linux,Bash,Shell,Command Line,Terminal,因此,我有一个名为myCMD的bash脚本,它以function()的形式将参数字符串包含在其中 但是,当我进入命令行时: myCMD function() 它会抱怨-bash:意外标记“(” 当我执行myCMD“function()”时,尽管它可以工作 但是,我不希望每次使用此命令时都必须将参数用引号括起来 有没有一种方法可以配置终端/my脚本,这样只要输入myCMD function(),它就可以将function()作为字符串处理,即使没有引号,也不会相应地抱怨?必须对()进行转义,就像
myCMD function()
它会抱怨-bash:意外标记“(”
当我执行myCMD“function()”
时,尽管它可以工作
但是,我不希望每次使用此命令时都必须将参数用引号括起来
有没有一种方法可以配置终端/my脚本,这样只要输入
myCMD function()
,它就可以将function()
作为字符串处理,即使没有引号,也不会相应地抱怨?必须对()
进行转义,就像bash特别处理它们一样。引号将转义为\(\)
。或者您可以重命名函数()
,使其名称中不包含()
。大多数shell不仅仅是bash在公开场合处理()
,因此您别无选择,只能引用它:“()”
,'(),$()'
或\(\)
在bash“函数”中是一个保留字,所以要小心
为什么不更改myCMD脚本以执行您想要的操作
您还可以使用read命令包装myCMD
#!/bin/bash
read line
myCMD "$line"
使用时需要调用包装器,然后输入字符串:
> myCMDWrapper
function()
myCMD was invoked with function()
嗯。你想用它做什么?你可以输入“函数”,然后在后面添加参数。