Concatenation (Bash): verschil tussen versies

Uit De Vliegende Brigade
Naar navigatie springen Naar zoeken springen
Regel 60: Regel 60:
 
Error: Too many positional arguments: 63537 63536 63534 63533 63532 63531 63527 63525 63524 63522 63521 63515 63507 63504 63503 63502
 
Error: Too many positional arguments: 63537 63536 63534 63533 63532 63531 63527 63525 63524 63522 63521 63515 63507 63504 63503 63502
 
</pre>
 
</pre>
 +
 +
== Bronnen ==
 +
 +
* https://pascalbirchler.com/an-introduction-to-wp-cli/

Versie van 29 jul 2021 08:03

Met concatenation bedoel ik dat de output van het ene commando, kan gebruikt worden als input voor het andere, en vergelijkbare zaken.

MIMO & WP-CLI

Deze situatie is iets anders: Het eerste commando geeft namelijk meerdere outputs. Hoe gebruik je dat als input? Ik noem dit hier MIMO - Multiple Input Multiple Output. Deze situatie heeft betrekking op de WordPress Command Line Interface (WP-CLI).

List & delete users

Dit vind ik nog altijd een inspirerende voorbeeld:

wp user delete $(wp user list --role="customer" --field=ID) --yes
  • Het binnenste gedeelte wp user list --role="customer" --field=ID genereert een opsomming van id's, met 1 id per regel
  • Het buitenste gedeelte wp user delete $() --yes neemt die id's als input-argument en verwijdert deze.

Voorbeeld (28 juli 2021):

wp user delete $(wp user list --role="customer" --field=ID) --yes

Success: Removed user 419 from http://en.s1.
Success: Removed user 614 from http://en.s1.
Success: Removed user 830 from http://en.s1.
Success: Removed user 364 from http://en.s1.
Success: Removed user 174 from http://en.s1.
Success: Removed user 341 from http://en.s1.
Success: Removed user 685 from http://en.s1.

Verwijderen van orders?

Bovenstaande aanpak zou ik ook graag willen gebruiken om orders te verwijderen.

De eerste stap lijkt hetzelfde te zijn: Een commando dat output genereert met een item per regel:

wp wc shop_order list --user=4 --field=id

63540
63538
63537
63536

Het buitenste gedeelte heb ik nu ook aan de praat:

wp wc shop_order delete 63540 --user=4

Success: Trashed shop_order 63540

Maar dit lukt dan weer niet:

wp wc shop_order delete $(wp wc shop_order list --user=4 --field=id) --user=4

Error: Too many positional arguments: 63537 63536 63534 63533 63532 63531 63527 63525 63524 63522 63521 63515 63507 63504 63503 63502

Bronnen