2016-03-21 19 views
1

Çağrıldığında bir komutu yürüten bir URI şeması işleyicim var. Benim tipi // ziyaret ettiğinizde: some-command %uBir dize değişkenini bir komuta iletildiği gibi nasıl işlerim?

some-command bana göre özelleştirilebilir

ve %u dize my-type//:example.com içeren bir değişkendir: example.com, Krom ve benim masaüstü ortamı aslında bu komutunu çalıştırın.

Yani aslında işletilirse komut şöyledir: some-command my-type//:example.com

Ne yapmak istiyorsunuz o example.com yerine

my-type//:example.com arasında nasıl yapıldığı içeren %u şekilde değiştirmek için mi?

+0

ekleyeceğinizi unutmayın. Daha fazla ayrıntı vermeniz gerekecek. Bu "URI şeması işleyicisi" nedir ve hangi dilde yazılmıştır? Bu parametreler nasıl geçiyor? – miken32

+0

URI şeması işleyicisi, olmasını istediğim bir şeydir. Bir komut dosyası, tarayıcı veya herhangi bir uygulama olabilir. O programa ulaşmadan önce ne olması gerektiğini soruyorum. Bu sadece bazı komutların ayarlandığı şey. –

cevap

0

Sen komuta olarak bash komut takip kullanabilir ve

#!/bin/bash 

EXPECTED_ARGS=2 
E_BADARGS=65 
# Check for proper number of command line args. 
if [ $# -lt $EXPECTED_ARGS ] 
then 
    echo "Usage: `basename $0` commmand-for-pass-uri-without-scheme uri" 
    echo "Example: `basename $0` echo my-type://example.com" 
    exit $E_BADARGS 
fi 

COMMAND=$1 
URI=$2 

# extract the protocol 
proto="$(echo $URI | grep :// | sed -e's,^\(.*://\).*,\1,g')" 
# remove the protocol -- updated 
url=$(echo $URI | sed -e s,$proto,,g) 
# extract the user (if any) 
user="$(echo $url | grep @ | cut [email protected] -f1)" 
# extract the host -- updated 
host=$(echo $url | sed -e s,[email protected],,g | cut -d/ -f1) 
# extract the path (if any) 
path="$(echo $url | grep/| cut -d/ -f2-)" 

$COMMAND $url 

Adı örneğin remove-scheme-and-call-command.sh yerine some-command set olarak remove-scheme-and-call-command some-command

izleyin bunu gerçek komut adı geçmesi

Komut dosyanızı chmod + x ile yürütülebilir hale getirmeyi ve komut dosyasını

İlgili konular