Lệnh một dòng để thêm các mục mới vào com.canonical.Unity.Panel systray-whlistist


8

Đây là nhiều hơn về cách sử dụng câu hỏi hướng dẫn dòng lệnh hơn là cách thêm các mục vào bảng thông báo Unity.

Tôi phải có CLI một dòng để thêm một mục mới vào com.canonical.Unity.Panel systray-whlistist.

Thủ tục tiêu chuẩn để làm như vậy là:

sudo gsettings get com.canonical.Unity.Panel systray-whitelist

Chúng tôi nhận được

['JavaEmbeddedFrame', 'Wine', 'Skype']

Sau đó, chúng tôi thực hiện lệnh thứ hai

sudo gsettings set com.canonical.Unity.Panel systray-whitelist "['JavaEmbeddedFrame', 'Wine', 'Skype', 'shutter']"

Mặc dù đó là tuyệt vời và tất cả, nó yêu cầu mọi người sao chép và dán kết quả từ dòng đầu tiên, và đối với một kịch bản tôi đang viết, tôi muốn thực hiện nó trong một lệnh.

Cho đến nay đây là những gì tôi có:

sudo gsettings set com.canonical.Unity.Panel systray-whitelist | gsettings get com.canonical.Unity.Panel systray-whitelist | sed -e "s/']$/,'shutter']/" | awk 'NF{print "\"" $0 "\""}'

Tôi nghĩ rằng tôi đang thiếu một cái gì đó.

Đầu tiên, tôi không chắc chắn liệu tôi có đang đặt chuỗi vào chức năng cài đặt gsinstall chính xác hay không. Thứ hai, trong khi tôi nghĩ rằng tôi đang phân tích cú pháp đầu ra từ gsinstall có chức năng chính xác, tôi sẽ không tìm ra cách để thêm "" xung quanh kết quả đã sửa đổi bằng cách sử dụng sed, vì vậy tôi phải chuyển một lệnh awk khác vào mớ hỗn độn này.

Nhờ ai giúp mà.


Có ai đã thử nghiệm điều này trên Ubuntu 12.04 chưa? Nó không hoạt động với tôi (nó đã hoạt động trên các phiên bản trước)
saeedgnu

gsinstall set com.canonical.Unity.Panel systray-whlistist "$ (gsinstall get com.canonical.Unity.Panel systray-whlistist | sed" s /, * 'yourapp' * // g "| sed" s / 'yourapp' *, * // g "| sed -e" s /] $ /, 'yourapp'] / ")" hãy thử cái này, thay thế yourapp bằng những gì bạn cần.
hansioux

Câu trả lời:


8

Sau khi gặp lỗi sau lỗi, cuối cùng tôi đã hiểu tại sao nó không chấp nhận dấu ngoặc kép. Bạn có thể chỉ cần đặt dấu ngoặc kép xung quanh biến thực tế, không cần nhập chúng vào lệnh thực tế.

Điều này sẽ làm việc:

gsettings set com.canonical.Unity.Panel systray-whitelist "$(gsettings get com.canonical.Unity.Panel systray-whitelist | sed -e "s/]$/, 'shutter']/")"

(Ngoài ra, bạn cần xóa 'in sed -e "s /'] $ / trong ví dụ của bạn để làm việc này).

Chỉnh sửa sau: nhân tiện, đừng chạy gsinstall với sudo ... nó sẽ không hoạt động.


Đây là một dòng mới tôi đã đưa ra. Điều này sẽ xóa bất kỳ mục trước nào có thể là danh sách trắng và thêm lại vào cuối. Đây là để cài đặt các kịch bản. đó là sức mạnh vũ phu nhưng nó hoạt động. gsinstall set com.canonical.Unity.Panel systray-whlistist "$ (gsinstall get com.canonical.Unity.Panel systray-whlistist | sed" s /, * 'yourapp' * // g "| sed" s / 'yourapp' *, * // g "| sed -e" s /] $ /, 'yourapp'] / ")"
hansioux
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.