将参数提供给Bash中的函数到wp-cli程序

时间:2015-02-20 15:08:08

标签: wordpress bash function alias

当你想给别名提供参数时,我看到了很多bash别名问题,但我认为我的情况完全不同。

这是我想要做的代码:

  wp post create --path="/var/www/html/web-page/" --post_status="publish" --post_category="$1" --post_title="$2" --edit  

我不能做别名,我需要一个函数,所以这就是我所做的:

post() {
    wp post create --path=/var/www/html/web-page/ --post_status=publish --post_category=$1 --post_title=$2 --edit;
            }

然后我有了这个:

$post 4 test
$Error: Too many positional arguments: --post_title=

如果我使用简单的引号:

post() {
        wp post create --path='/var/www/html/web-page/' --post_status='publish' --post_category='$1' --post_title='$2' --edit;
                }

它不接受参数,它使用$ 1和$ 2作为文本。

但是有些不对劲我无法看到它。

我认为这与syntaxis

有关

感谢您的帮助!!

1 个答案:

答案 0 :(得分:0)

好的,它有效!

我使用别名,它适用于:

简单的引号和没有引号的变量:

  post() {
    wp post create --path='/var/www/html/web-page/' --post_status='publish' --post_category=$1 --post_title=$2 --edit'';
            }
alias post="post"

它也适用于doble引号:

post() {
wp post create --path="/var/www/html/web-page/" --post_status="publish" --post_category="$1" --post_title="$2" --edit"";
        }
alias post="post"

它也适用于doble引号而没有;最后

post() {
    wp post create --path="/var/www/html/web-page/" --post_status="publish" --post_category="$1" --post_title="$2" --edit""
            }
alias post="post"

它也适用于简单的引号而没有;最后

post() {
wp post create --path='/var/www/html/edgardo/' --post_status='publish' --post_category=$1 --post_title=$2 --edit''
        }
alias post="post"

它使用别名而没有别名,我写下来只是为了告诉你,也许它会帮助别人。

当我想要一个post_title时,我可以用''和""并且它有效,但如果post_title没有空格,它也可以在没有引号的情况下工作。

非常感谢你的时间,对不起我还在学习......