Điểm:0

Làm cách nào để xuất 1 hoặc một số quy tắc cụ thể?

lá cờ ma

Tôi muốn xuất một hoặc nhiều quy tắc hoặc thành phần cụ thể bằng Drush.
Tôi có một tập lệnh để xuất tất cả các quy tắc và thành phần.

drush --pipe quy tắc danh sách | xargs -I{} sh -c "drush rules-export '{}' > '20210623-new-Rules-export-offline/{}.txt'"

20210623-new-Quy tắc-xuất-ngoại tuyến là thư mục lưu các quy tắc đã xuất.

Có điều gì tôi cần thay đổi đối với mã này để xuất các quy tắc cụ thể mà tôi muốn xuất không?

Tôi đã tạo Chế độ xem VBO quy tắc để có quyền truy cập tốt hơn vào tất cả các quy tắc đó, nhưng tính năng xuất thành tệp dường như không được cung cấp.

apaderno avatar
lá cờ us
Nếu tôi hiểu chính xác câu hỏi, thay vì xuất tất cả các quy tắc, bạn chỉ muốn xuất các quy tắc cụ thể mà bạn cung cấp tên. Đó có phải là những gì bạn đang cố gắng để đạt được?
Điểm:1
lá cờ fr

danh sách quy tắc drush được sử dụng để liệt kê tất cả các Quy tắc trên trang web của bạn.

drush quy tắc-xuất khẩu <rule-machine-name> sẽ xuất một Rule cụ thể.

Lệnh bạn hiển thị ở trên chỉ đơn giản là lấy đầu ra của lệnh danh sách quy tắc và chuyển nó sang xuất quy tắc, thực tế là lặp qua tất cả các Quy tắc và xuất từng Quy tắc.

BassPlaya avatar
lá cờ ma
Cảm ơn bạn @anonymous
BassPlaya avatar
lá cờ ma
Tôi đã thử điều này cho 1 quy tắc và điều này thực sự hoạt động nhưng nó hiển thị mã đã xuất trong Terminal nên tôi vẫn phải sao chép và dán mã đó vào tệp văn bản của chính nó. Đây là những gì tôi đã thực hiện để xuất 1 quy tắc thành tệp văn bản riêng với tên máy làm tệp của nó: `drush rules-export my_rule_1 > my_rule_1.txt`. Nếu tôi thử 2 quy tắc và tôi sử dụng lệnh này, nó chỉ xuất quy tắc đầu tiên: `drush rules-export my_rule_1 my_rule_2 > my_exported_rules.txt`. Tôi phải thiếu dấu phân cách chính xác.
Điểm:0
lá cờ us

Để xuất nhiều quy tắc, nhưng chỉ các quy tắc có tên được đưa ra trong danh sách, tôi sẽ sử dụng đoạn mã sau.

#!/usr/bin/bash

# Danh sách tên mặt hàng cần xuất
item=(item1 item2 item3)
cho mục trong "${items[@]}"; làm
  xuất quy tắc drush "$item"> "${item}.txt"
xong

Điều này đơn giản hơn việc lấy danh sách các quy tắc hiện có từ danh sách quy tắc drush --pipe, xóa các mục trong danh sách không khớp với tên quy tắc mà bạn muốn xuất rồi chạy drush quy tắc-xuất khẩu trên các mục bên trái.

Nếu bạn có một danh sách tên, có thể là tên thành phần hoặc tên quy tắc và bạn chỉ muốn xuất quy tắc, thì mã sẽ tương tự như mã sau.

#!/usr/bin/bash

# Danh sách các mục cần xuất, có thể bao gồm tên thành phần
tên=(tên1 tên2 tên3)

# Chỉ lấy danh sách tên quy tắc và chuyển đổi nó thành một mảng.
quy tắc =( $(danh sách quy tắc drush --pipe --type=rule) )

# Tạo một mảng với các mục nằm trong cả hai mảng.
export=( $(comm -12 <(printf '%s\n' "${names[@]}" | LC_ALL=C sort) <(printf '%s\n' "${rules[@]}" | LC_ALL=C loại)) )

# Xuất các mục có tên trong mảng xuất, mảng chỉ chứa tên quy tắc.
để xuất trong "${exports[@]}"; làm
  quy tắc drush-export "$export"> "${export}.txt"
xong
lá cờ fr
Mặc dù điều này hoàn toàn đúng, nhưng câu trả lời này thực sự là về lập trình shell hơn là drush hoặc Quy tắc hoặc thậm chí là Drupal. Tất nhiên, có nhiều cách để sử dụng lệnh xuất quy tắc drush cơ bản để lặp qua một bộ đầu vào, nhưng đây là những cách phụ thuộc vào hệ điều hành và phụ thuộc vào ngôn ngữ tập lệnh (có thể được thực hiện với bash, csh, python, perl .. thậm chí PHP...v.v).
apaderno avatar
lá cờ us
Có, nhưng câu hỏi yêu cầu giải thích cách đạt được điều gì đó với trình bao, với điều kiện là lệnh hiển thị trong câu hỏi là `drush --pipe rules-list | xargs -I{} sh -c "drush rules-export '{}' > '20210623-new-Rules-export-offline/{}.txt'"` và câu hỏi đặt ra là _Tôi cần thay đổi điều gì đó đối với mã này để xuất các quy tắc cụ thể mà tôi muốn xuất?_
apaderno avatar
lá cờ us
Câu trả lời này không chỉ là về trình bao, vì nó chỉ ra cách sử dụng tham số được chấp nhận bởi `danh sách quy tắc drush`.

Đăng câu trả lời

Hầu hết mọi người không hiểu rằng việc đặt nhiều câu hỏi sẽ mở ra cơ hội học hỏi và cải thiện mối quan hệ giữa các cá nhân. Ví dụ, trong các nghiên cứu của Alison, mặc dù mọi người có thể nhớ chính xác có bao nhiêu câu hỏi đã được đặt ra trong các cuộc trò chuyện của họ, nhưng họ không trực giác nhận ra mối liên hệ giữa câu hỏi và sự yêu thích. Qua bốn nghiên cứu, trong đó những người tham gia tự tham gia vào các cuộc trò chuyện hoặc đọc bản ghi lại các cuộc trò chuyện của người khác, mọi người có xu hướng không nhận ra rằng việc đặt câu hỏi sẽ ảnh hưởng—hoặc đã ảnh hưởng—mức độ thân thiện giữa những người đối thoại.