सवाल क्या ज़ेनिटी सूची एक स्ट्रिंग '- विकल्प' प्रदर्शित कर सकती है?


क्या ज़ेनिटी सूची-शैली मेनू एक कोड विकल्प दिखा सकता है -r?

मैं एक एफएफएमईईजी बैश स्क्रिप्ट के लिए एक साधारण जीयूआई बनाने की कोशिश कर रहा हूं। वीडियो के लिए फ़्रेमेट चुनने के लिए यह केवल एक संकेत है। मैं जेनिटी सूची कॉलम में से एक चाहता था कि वास्तविक एफएफएमईईजी विकल्प का उपयोग किया जाए, जिसका उपयोग एफएफएमपीईजी कोड में किया जा रहा है, लेकिन उम्मीद है कि उपयोगकर्ता को कुछ एफएफएमपीईजी सिंटैक्स सिखाने के लिए भी। इस कदर:

#!/bin/sh

zenity --list \
    --title="Select framerate" \
    --column="ffmpeg code" --column="Framerate" --column="Description" \
    "-r 24000/1001" "23.976fps" "NTSC compatible 24fps" \
    "-r 30000/1001" "29.98fps" "NTSC compatible 30fps"

लेकिन यह जेनेटी त्रुटि संदेश देता है:

This option is not available. Please see --help for all possible usages.

मुझे लगता है कि मैं समझता हूं कि समस्या क्या है; जेनीटी सोचता है -r एक जेनेटी विकल्प है, और इसे पहचान नहीं है।

बस हटा रहा है - से पहले -r इसे ठीक करता है:

zenity --list \
    --title="Select framerate" \
    --column="ffmpeg code" --column="Framerate" --column="Description" \
    "r 24000/1001" "23.976fps" "NTSC compatible 24fps" \
    "r 30000/1001" "29.98fps" "NTSC compatible 30fps"

कोई त्रुटि नहीं दिखाता है और सही ढंग से प्रदर्शित करता है:

A Zenity GUI with the aforementioned options, but no dash in front of the "r" as in "-r"

लेकिन फिर निश्चित रूप से यह किसी को भी FFMPEG फ़्रेमेट विकल्प का उपयोग करने के तरीके को सिखाएगा क्योंकि डैश की आवश्यकता है।

बैकस्लैश के साथ डैश से बचें \- बस बैकस्लैश प्रिंट करता है, जो किसी को भी एफएफएमपीईजी नहीं सिखाएगा:

A Zenity GUI with the aforementioned options with "-r" in front of them.

मैंने भी कोशिश करने की कोशिश की है ' तथा """ तथा ''' डबल कोट्स के बजाय, लेकिन वे वही देते हैं This option is not available... त्रुटि संदेश।

क्या ज़ेनिटी को ऐसा कुछ प्रदर्शित करना संभव नहीं है? मुझे पता है कि समस्या के आसपास के तरीके हैं अगर मैं सिर्फ सूची को कोड वापस लौटना चाहता हूं (बस जोड़ रहा हूं -r आउटपुट की शुरुआत में) लेकिन जैसा कि मैंने कहा था कि मैं GUI के उपयोगकर्ता को FFMPEG कमांड लाइन इंटरफ़ेस का उपयोग करने के बारे में कुछ सिखा सकता हूं। कोई विचार? धन्यवाद।

संपादित करें: वैसे zenity --version मेरे सिस्टम पर (जुबंटू 14.04) रिटर्न 3.8.0 अगर संस्करण समस्या का हिस्सा हो सकता है।


4
2018-02-02 20:27


मूल


बेशक आप यहां एक स्क्रिप्ट का एक लिंक कर सकते हैं जो कि बस करता है - bodhizazen.net/Tutorials/adblock - Panther
ऐसा लगता है कि मैंने अर्ध-डुप्लिकेट प्रश्न पूछा था। संबंधित पोस्ट: unix.stackexchange.com/q/250171/154997 हल होने के बाद मैंने इसे दुर्घटना से पाया। - InverseTelecine


जवाब:


आप बस जगह से पहले रख सकते हैं - चरित्र, इस तरह:

zenity --list \
    --title="Select framerate" \
    --column="ffmpeg code" --column="Framerate" --column="Description" \
    " -r 24000/1001" "23.976fps" "NTSC compatible 24fps" \
    " -r 30000/1001" "29.98fps" "NTSC compatible 30fps"

4
2018-02-02 20:44



सुनिश्चित नहीं है कि आपको यह कहां मिला, लेकिन यह काम करता है :) - Jacob Vlijm
ओह के प्यार के लिए ... यह बहुत दुखी है कि मैंने कभी इसके बारे में सोचा नहीं होगा! बहुत बहुत धन्यवाद! - InverseTelecine


अपने डेटा को प्रति पंक्ति एक पंक्ति stdin में लिखें, जैसे

zenity --list \
  --title="Select framerate" \
  --column="ffmpeg code" --column="Framerate" --column="Description" <<EOF
-r 24000/1001
23.976fps
NTSC compatible 24fps
-r 30000/1001 
29.98fps 
NTSC compatible 30fps
EOF

2
2018-02-02 20:49



इस Florian के लिए धन्यवाद! IncBrain के समाधान ने मेरी समस्या हल की, लेकिन मैं निश्चित रूप से आपके समाधान को बचा रहा हूँ। ऐसा लगता है कि इस तरह के सरल उत्तरों के बिना अन्य परिस्थितियों के लिए एक अच्छा सबसे खराब-केस-स्केनेरियो समाधान लगता है। - InverseTelecine