İngilizceFransızcaİspanyolca

Ad


OnWorks favicon'u

comgt - Bulutta Çevrimiçi

Ubuntu Online, Fedora Online, Windows çevrimiçi emülatörü veya MAC OS çevrimiçi emülatörü üzerinden OnWorks ücretsiz barındırma sağlayıcısında comgt çalıştırın

Bu, Ubuntu Online, Fedora Online, Windows çevrimiçi emülatörü veya MAC OS çevrimiçi emülatörü gibi birden fazla ücretsiz çevrimiçi iş istasyonumuzdan birini kullanarak OnWorks ücretsiz barındırma sağlayıcısında çalıştırılabilen komut komutudur.

Program:

ADI


comgt - Seçenek GlobeTrotter GPRS/EDGE/3G/HSDPA ve Vodafone 3G/GPRS veri kartı kontrolü
araç

SİNOPSİS


komut -d cihaz -ehstvVx senaryo

SEÇENEKLER


-d cihaz
veri kartı ile iletişim kurmak için kullanılacak cihazı ayarlayın. değilse
belirtilen sonra comgt çalışır /dev/noz2, /dev/ttyUSB2 ve sonra /geliştir/modem

-e
seri iletişim yankısını açın.

-h
özet yardımı göster ve çık.

-s
iç çalıştırma varsayılan harici bir komut dosyasından önce komut dosyası.

-t
alternatif bir satır sonlandırıcıya geçin (varsayılan "0).

-v
ayrıntılı modda çalıştırın. Bu, komut dosyalarını yürütüldükçe izler. Bu
komut dosyalarında hata ayıklamaya yardımcı olmayı amaçlamaktadır.

-V
Sürüm bilgilerini yazdırın.

-x
dahili ve harici komut dosyaları için, 115200 baud'a yapılan herhangi bir referans
57600'e dönüştürüldü. Bu, 115200'ü sevmeyen veri kartları için kullanışlıdır.
GlobeTrotter EDGE gibi bir baud.

TANIM


komut seri iletişim kurmak için yararlı bir betik dili yorumlayıcısıdır.
hatlar ve PCMCIA modemlerin yanı sıra GPRS ve 3G veri kartları aracılığıyla.

komut aynı türdeki diğer yardımcı programlarda nadiren bulunan bazı özelliklere sahiptir.

Özellikler
- 2G/3G veri kartı kontrolü için önceden tanımlanmış yerleşik komut dosyaları
- Basit, BASIC benzeri bir betik dili.
- Komut satırı ve komut dosyasının dosya kaynağı.
- Çoklu yanıt bekleme.
- waitquiet hat stabilizasyonuna izin verir.
- Satır içi metin yakalama.
- Çoklu işlem desteği: çatal, bekle, öldür, çık.
- Ayrıntılı ve günlük çıktısında hata ayıklama.
- dosyaya giriş.
- Akış kontrolü: git, git, geri dön, eğer, başka.
- Sistem kaynakları üzerinde düşük etki.
- Zaman komutları ve işlevleri.
- Dize manipülasyonları.
- Çevre düzenlemesi: env(), putenv.
- Harici yardımcı programlar sistem çağrıları: sistem, yürütme.

destekli GPRS ve 3G veri kartları
komut GlobeTrotter GPRS,EDGE, Combo EDGE, 3G, 3G EDGE, HSDPA ve
GlobeTrotter Fusion ve Vodafone 3G. PIN'i ayarlayabilir ve bilgileri görüntüleyebilir
PPP bağlantısı başlamadan önce veri kartları hakkında. Ek olarak, çünkü
GlobeTrotter ve Vodafone 3G/GPRS datacard ikincil bir seri arayüze sahiptir, bunlar
PPP bağlantısı varken ve veri aktarırken veri kartları izlenebilir.

komut öncelikle GlobeTrotter veri kartları yelpazesiyle çalışmak üzere tasarlanmıştır, ancak
arayüzünün tek olarak uygulanması koşuluyla diğer herhangi bir GPRS veya 3G veri kartıyla uyumludur
veya daha fazla seri veya USB seri cihaz ve bir uygulama tarafından kontrol edilir ve sorgulanır
Listelenenler tarafından kullanılan aynı AT komut uzantılarına sahip Hayes komut arabiriminin
veri kartları.

kullanma komut
komut tek bir işlevi vardır: bir komut dosyasını çalıştırmak. Bu, bir dizi "standart" dan biri olabilir.
dahili komut dosyaları veya harici bir komut dosyası. Her iki komut dosyası türü de aynı şekilde çağrılır.
"Standart" komut dosyaları yerleşiktir komut ve seri bağlı modemler için çalışacak,
yerleşik modemler, PCMCIA modemlerin yanı sıra GlobeTrotter GPRS ve Vodafone 3G/GPRS
veri kartları. Komut dosyaları için bir arama öncelik sırası vardır - 1) dahili, 2) çalışıyor
dizin, 3)/etc/comgt

Gömme scriptler
komut
Bu, varsayılan dahili komut dosyasını çalıştırır. Koşma komut herhangi bir komut dosyası belirtilmeden, örneğin,
komut -d /dev/ttyS1 PIN'i kontrol edecek ve gerekip gerekmediğini size soracaktır. Sonraki
yaptığı şey, cihazın kaydolmasını beklemektir, ardından sinyal gücünü bildirir. Eğer
ile bir bağlantı noktası belirtmezsiniz -d o zaman seçenek /geliştir/modem varsayılır. -s anahtarı ise
Kullanılmazsa, bu varsayılan komut dosyası herhangi bir harici komut dosyasından önce çalıştırılır.

komut yardım et
Bunları ve mevcut diğer seçenekleri listeler.

komut bilgi
Veri kartı yapılandırmasını listeler.

komut sig
Sinyal gücünü yazdırır.

komut reg
Kayıt durumunu yazdırır.

komut 3G
GlobeTrotter 3G/Fusion ve Vodafone 3G'yi yalnızca 3G ağı moduna (UMTS/HSDPA) geçirir.

komut 2G
GlobeTrotter 3G/Fusion ve Vodafone 3G'yi yalnızca 2G ağı moduna (GSM/GPRS/EDGE) geçirir.

komut 3G2G
GlobeTrotter 3G/Fusion ve Vodafone 3G'yi 3G tercih edilen moda (UMTS/HSDPA ve
GSM/GPRS/KENAR).

komut GEDGE
önce GlobeTrotter EDGE ve GlobeTrotter Combo EDGE kartlarını başlatmak için bu komutu kullanın.
başka bir şey yapıyor. (Radyoyu açar).

komut Amerika Birleşik Devletleri
ABD işlemi için 900/1900 MHz bandına geçin. Yalnızca GlobeTrotter GPRS veri kartları.

komut AVRUPA
Avrupa işletimi için 900/1800 MHz bandına geçin. Yalnızca GlobeTrotter GPRS veri kartları.

komut PIN
SIM PIN durumunu test edin ve değer olarak COMGTPIN ortam değişkenini kullanın.

komut APN
Veri kartının APN'sini COMGTAPN ortam değişkeninde bulunan değere ayarlayın.

görenek Scripts
Yerleşik komut dosyalarının yanı sıra kendinizinkini de oluşturabilirsiniz. Aşağıdaki komut dosyası bir Vodafone 3G'yi ayarlar
datacard veya Opsiyon Fusion kartının UMTS modundan GPRS'ye:

#Yalnızca GPRS modunu ayarla
115200n81 com'u ayarla
gönderme gecikmesini 0.05 ayarla
sessiz 1 0.2
"AT_OPSYS=0^m" gönder
"Yalnızca GPRS modunu ayarlama" yazdır

Yukarıdaki betiği GPRS olarak kaydettiyseniz, onu şöyle çağırırsınız:

komut GPRS

Bağlantı noktasını da belirtmeniz gerekiyorsa, şunu yapın:

komut -d /dev/ttyS1 GPRS

Ayrıca ortam parametrelerini bir komut üzerinden komut dosyası $env().

değiştirilmesi sohbet
sohbet ppp paketiyle (her neyse, Linux için) birlikte gelen bir yardımcı programdır.
bekle-gönder dize çiftleri, çoğu insanı ISS'lere ve benzerlerine bağlamak için yeterlidir. Sırasında
sohbetin kullanımı çok basittir, çok esnek değildir. Bu nerede komut devralır.

komut yerine kullanılabilir sohbet aynı stratejiyi kullanarak. Örneğin, bir pppd satırı
okuma:

pppd bağlantısı \
´chat -v "" ATDT5551212 BAĞLANTI "" giriş: ppp \
kelime: beyaz su´ \
/dev/cua1 38400 hata ayıklama crtscts modem defaultroute

Kullanacak, komutan, okuyun:

pppd connect ´comgt -s /root/scripts/isp.scr´ /dev/cua1 38400 \
hata ayıklama crtscts modem defaultroute

Ve isp.scr betiği şunu okurdu:

"ATDT5551212^m" gönder
60 "başlangıç:" için bekleyin
"ppp^m" gönder
60 "kelime:" için bekleyin
"beyaz su^m" gönder

Tabii ki, bu betiği çok daha işlevsel hale getirmek önemsiz hale geliyor.
meşgul algılama, yeniden arama, vb. için kod ekleme ...

gereksiz sözlerle dolu çıktı
Ayrıntılı seçenek açıldığında, komut standart hatayla ilgili her şeyi rapor eder
kanal. Komut satırından (-v) açılırsa, çıktı 4 bölüm içerir.

- Komut satırı bağımsız değişken eylemleri
Bunlar, komut satırından belirtildiği için gerçekleştirilen eylemlerdir, örneğin
bir iletişim cihazının açılması (-d), vb... Bunların çıktı alınması için -v belirtmelisiniz
ilk argüman olarak.

- Argümanların listesi
Geçirilen bağımsız değişkenlerin sayısı ve listesi. Bu, bir demetiniz olması durumunda kullanışlıdır.
komut satırında ortam değişkenleri veya tırnak işaretleri, ters tırnaklar, ters eğik çizgiler ve
betiğin gerçekten ne gördüğünden emin değilim.

- Komut dosyası listesi
Yürütülecek komut dosyasının listesi. Bu, varsayılan dahili
-s seçeneği ve bir komut dosyası tarafından bastırılmadığı sürece komut dosyası. her satır
satır numarası ve karakter konumu ile listelenir.

- Yürütme çıktısı
Yürütülen komutların listesi. Ayrıştırıcı, şu anda açık olan satırı yazdırır,
tam olarak bulunduğu noktadan başlayarak çizginin sonuna kadar. Çoklu komut
tek bir satırdaki gruplar birden çok çıktı satırı üretir. Ayrıntılı çıktı ile karıştırılabilir
komut dosyası çıktısı (baskı, eprint veya lprint.)

İşte bir örnek:

$ comgt -v -d/dev/cua1 -s falan.scr
comgt 00:18:46 -> Ayrıntılı çıktı etkinleştirildi
comgt 00:18:46 -> Komut dosyası: blah.scr
komut 00:18:46 -> bağımsız değişken:5
comgt 00:18:46 -> argv[0]=comgt
comgt 00:18:46 -> argv[1]=-v
comgt 00:18:46 -> argv[2]=-d/dev/cua1
comgt 00:18:46 -> argv[3]=-s
comgt 00:18:46 -> argv[4]=blah.scr
comgt 00:18:46 -> ---Komut dosyası---
1@0000 com 38400n81 set a=2 olsun
2@0025 "9x",a,"=",9*a,"\n" yazdır
3@0051 uyku 5
4@0059 çıkış 0
comgt 00:18:46 -> ---Komut dosyasının sonu---
comgt 00:18:46 -> @0000 com 38400n81 set a=2 olsun
comgt 00:18:46 -> @0017 a=2 olsun
comgt 00:18:46 -> @0025 "9x",a,"=",9*a,"\n" yazdır
9x2 = 18
comgt 00:18:46 -> @0051 uyku 5
comgt 00:18:51 -> @0059 çıkış 0

Programlama Manuel


Sözdizimi
için kullanılan sözdizimi komut komut dosyaları oldukça basittir, biraz TEMEL benzeridir. Bir komut dosyası bir
yeni satır karakterleriyle sonlandırılan satırları içeren, simgeleştirilmemiş, saf ASCII metin dosyası
(Unix standardı.) Komut dosyaları herhangi bir standart metin düzenleyici kullanılarak oluşturulabilir ve/veya değiştirilebilir
(vi, vim, joe, pico, emacs, ed, microEmacs) Bir komut komut dosyası şöyle okunur:

- Boş hat
- [girinti]rem notu
- [indent][[:|label] LABEL] [komut [argümanlar]] geri açıklama
- [indent][[:|label] LABEL] [komut [argümanlar]] [komut [argümanlar]]...

Girinti için kullanılan karakterler boşluk ve tablo karakterleridir.
rem komutu, komut dosyası ayrıştırıcısının satırın geri kalanını atlamasını sağlar.
rem komutu "#" veya "//" olarak da yazılabilir.

Etiketler küçük ve büyük harf ve rakamlardan oluşur.
Etiketlerde büyük/küçük harf yoksayılır.

Komutlar ve argümanları boşluk ve/veya sekmelerle ayrılır.
Komut grupları boşluklar, sekmeler veya yeni satırlarla ayrılır.

İfadeler boşluk veya sekme içermemelidir.
Bu tamam : n=x+76 olsun
Bu değil: n= x + 76 olsun
Çünkü bu boşluk ^ let komut grubunu sonlandıracaktır.

Hata raporlama
Ne zaman komut bir komut dosyası hatası algılar, hemen ayrıntılı modu açar, bir döküm oluşturur
(dump komutuna bakın), hatayı üç satırda bildirir ve yürütmeyi durdurur. bu
bildirilen ilk satır, yürütülmekte olan komut grubudur, ikincisi,
ayrıştırıcı aldı ve üçüncü satır program sayacının karakter konumunu bildirir,
hata ve çıkış kodu.

İşte bir örnek:

$comgt -blar2.scr'ye karşı

blar2.scr komut dosyasının bulunduğu yer:

dahil n
aralık d3
a=58/3 olsun
$d="fod" olsun
c=1/0 olsun
$y4="sdfgsdfgsdfg" olsun

İzleme ve hata raporu şöyle görünür:

comgt 11:20:15 -> Ayrıntılı çıktı etkinleştirildi
comgt 11:20:15 -> Komut dosyası: blar2.scr
komut 11:20:15 -> bağımsız değişken:3
comgt 11:20:15 -> argv[0]=comgt
comgt 11:20:15 -> argv[1]=-vs
comgt 11:20:15 -> argv[2]=blar2.scr
comgt 11:20:15 -> ---Komut dosyası---
1 @0000 inc n
2@0007 ara d3
3@0015 a=58/3 olsun
4@0027 $d="fod" olsun
5@0041 c=1/0 olsun
6@0052 $y4="sdfgsdfgsdfg" olsun
comgt 11:20:15 -> ---Komut dosyasının sonu---
comgt 11:20:15 -> @0000 inc n
comgt 11:20:15 -> @0007 ara d3
comgt 11:20:15 -> @0015 a=58/3 olsun
comgt 11:20:15 -> @0027 $d="fod" olsun
comgt 11:20:15 -> @0041 c=1/0 olsun
comgt 11:20:15 -> -- Hata Raporu --
komut 11:20:15 -> ----> ^
comgt 11:20:15 -> Hata @49, satır 5, sıfıra bölme. (6)

Çıkış kodları
Ne zaman komut sona ererse, bunu bir "çıkış kodu" ile yapar. Bu geri gönderilen bir sayıdır
başarı veya başarısızlıkları belirtmek için arama süreci. Günlük Unix'te 0 (sıfır) şu anlama gelir:
başarı ve diğer her şey, programın yazarı ne demek istiyorsa o anlama gelir. İçinde
bir kabuk betiği veya doğrudan komut satırından içeriğine bakabilirsiniz. $? sonra
aradı komut çıkış kodunu incelemek için.

Örnek:

#!/ Bin / sh
comgt /root/bin/çağrı-isp
eğer [$? != 0 ]; sonra
echo "Hata! Bir şeyler ters gitti."
fi

İç komut hata kodları aşağıdaki gibidir:

0 : Herhangi bir sorun yok. Görünen o ki.
1 : İletişim cihazı sorunları.
2: Konsol (tty) cihaz sorunları.
3: Hafıza sorunları.
4 : Dosya veya boru sorunları.
5 : Sözdizimi hataları.
6 : Sıfıra bölme.
7 : Değişken yanlış yönetim.
8 : Sistem sorunları. (aramadım / Bin / sh veya benzeri)

Komutları
Komut : : Takma ad: etiket
Açıklama : Gitmek veya dallanmak üzere gosub için bir bağlantı noktası not eder.
Sözdizimi : Anahtar kelime herhangi bir özel karakter içermemelidir.
Not : Bir satırdaki ilk ifade olmalıdır.
Ayrıca Bakınız: git, git, geri dön.
Örnek:
: döngü
bravo bravo
print "Saat ",$time(),"\n"
1 uyku
goto döngü
etiket bravo
"İki!\n" yazdır
dönüş

Komut: iptal
Açıklama : comgt'un abort()'u çağırmasına ve bir çekirdek dökümü oluşturmasına neden olur.
Sözdizimi: iptal
Ayrıca Bakınız: boşaltmak, çıkmak.

komut: cd
Açıklama : Dizini değiştirin.
Sözdizimi: cd dizini
Notlar : Değişiklik yapılamazsa % olarak -1 döndürülür.
Notlar: dizin bir dizedir ve bu nedenle bir değişken olabilir.
Ayrıca Bakınız: $cwd().
Örnek:
cd "hah"
if % != 0 print "Duh içine cd alınamadı.\n"

komut: kapat
Açıklama : daha önce open ile açılan dosyayı kapatır.
Sözdizimi: dosyayı kapat
Ayrıca bakınız: açın.

komut: aralık
Açıklama : Bir tamsayı değişkeninin içeriğini 1 azaltır.
Sözdizimi: dec x
Notlar : x, a'dan z'ye veya a0'dan z9'adır.
Notlar : "let x=x-1"in de işe yaradığını unutmayın.
Ayrıca Bakınız: let, inc.

komut: boşaltmak
Açıklama : Sıfır olmayan tüm tamsayı değişkenlerini ve değiştirilmiş dizeyi listeler
Açıklama : günlük girdileri olarak değişkenler (standart hata kanalı.)
Sözdizimi: dökümü
Ayrıca Bakınız: iptal, çıkış

komut: başka
Açıklama : Alternatif olarak, son "eğer" yanlış olarak test edildiyse komutları yürütün.
Sözdizimi: başka komutlar...
Ayrıca Bakınız: eğer
Örnek:
if w<350 print "Vay canına! Bunu hayal et.\n"
else print "Rush Limbaugh koca şişko bir piçtir.\n"

komut: eprint
Açıklama : stderr'de virgülle ayrılmış bir argüman listesi yazdırın.
Sözdizimi : eprint var,stringvar,"text",...
Notlar : Yazdırma gibi ancak standart hata dosyası tanımlayıcısında.
Notlar : Hata çıktısı, "2>file" ile yeniden yönlendirilebilir.
Notlar: komut satırı.
Ayrıca Bakınız: yazdırın.

komut: exec
Açıklama : Geçerli comgt işlemini başka bir işlemle değiştirir.
Sözdizimi: exec "command -args..."
Ayrıca Bakınız: sistem, çatal.
Örnek:
#Bitmiş senaryo, cu'yu ara.
exec "cu -l "+$dev()+" -s "+$baud()

komut: çıkış
Açıklama : komut dosyasının yürütülmesini çıkış koduyla sonlandırır.
Sözdizimi: çıkış_kodundan çık
Ayrıca Bakınız: iptal etmek, boşaltmak.
Örnek:
: hata
çıkış 1
:smeggit
çıkış 0

komut: flaş
Açıklama : Belirli bir süre için iletişim cihazında DTR'yi açar/kapatır.
Sözdizimi: flash float_constant
Notlar : float_constant 1/100 saniyeye kadar hassastır.
Notlar : Modemin taşıyıcıyı düşürmesine veya komut moduna geçmesine neden olur,
Notlar : modem ayarlarına bağlıdır. Baud hızının 0'a ayarlanması
Notlar : Bir süre için aynı etkiye sahiptir.
Ayrıca Bakınız: uyku, set com.
Örnek:
:bağlantıyı kes
flaş 0.5
çıkış 0

komut: fprint
Açıklama : bir dosyada virgülle ayrılmış bir argüman listesi yazdırın.
Sözdizimi : fprint var,stringvar,"text",...
Notlar : Yazdırma gibi ama daha önce açılmış bir dosyaya eklenmiş
Notlar: açık.
Ayrıca Bakınız: yazdırın.

komut: çatal
Açıklama : çatal comgt işlemi ikiye ayrılır. Her iki süreç de devam ediyor
Açıklama : betiğin çalıştırılması.
Sözdizimi: çatal
Notlar : %, alt süreç için 0, yeni süreç kimliği için
Notlar: ebeveyn veya hata için -1.
Ayrıca Bakınız: bekle, öldür, pid(), ppid().
Örnek:
çatal
eğer % = -1 alma hatası
eğer % = 0 çocuğa git
:ebeveyn
...

komut: al
Açıklama : iletişim cihazından dize alın.
Sözdizimi: "sonlandırıcılar" zaman aşımını al $string
Notlar: zaman aşımı bir kayan nokta sabitidir, sonlandırıcılar bir
Notlar: Alındığında sonlandırılan karakterlerin listesi
notlar: alın. Sonlandırıcılar ilk alındığında yok sayılır.
Ayrıca Bakınız: bekleyin.
Örnek:
60 "bağlan" için bekleyin
if % != 0 alma hatası
2 "^m" $s al
print "Bağlantı parametreleri: ",$s,"\n"

Komut: gosub
Açıklama : bir alt programı çağırır.
Sözdizimi: gosub etiketi
Notlar : Şu anda, comgt yalnızca 128 gosub seviyesini desteklemektedir.
Notlar: aramalar (yeterli!)
Ayrıca Bakınız : :, git, dön.
Örnek:
gosub rutini
1 uyku
gosub rutini
Goto end
:rutin
"Flim-flam!\n" yazdır
dönüş

komut: git
Açıklama : Yürütmeyi komut dosyasında başka bir yere gönderir.
Sözdizimi: etikete git
Ayrıca Bakınız : :, gosub, dönüş.
Örnek:
:win95
print "Bugün Linux kullanmak istiyorum, teşekkür ederim.\n"
win95'e git

Komut : hset
Açıklama : Yüzlerce zamanlayıcıyı ayarlayın.
Sözdizimi: hset değeri
Notlar : Bu komut, yüzlerce saniyelik zamanlayıcıyı sıfırlar.
Notlar : başlangıç ​​için htime değeri.
Ayrıca Bakınız: htime().
Örnek:
hset 0
: döngü
print "Saniyenin 1/100'ü cinsinden süre: ",htime(),"\n"
0.01 uyku
goto döngü

komut: eğer
Açıklama : bir durumu test eder
Sözdizimi: eğer test_condition komutları...
Notlar: Test koşulu doğruysa, Conditionnaly komutları yürütür.
Notlar : Test operatörleri = (eşit), != (eşit değil),
Notlar : <> (eşit değil) < (küçüktür), > (büyüktür),
Notlar : <= (daha az veya eşit), >= (daha büyük veya eşit).
Notlar : Tüm operatörler tamsayılar ve karakter dizileri ile kullanılabilir.
Notlar : test_condition yanlışsa, atlanırsa
Notlar: sonraki satır.
Ayrıca Bakınız: başka.
Örnek:
if n>30 "Oh-ho! çok fazla koyun!\n" yazdırırsa hataya gider
if n=17 yazdır "Yaşasın! Yeterince koyunumuz var\n" partiye git
eğer n<17 yazdır "Murray, daha fazla koyun al.\n" daha fazlasını al
eğer $z < "Marmaluke" gitse...
3*a>5+b ise...

Komut: inc
Açıklama : bir tamsayı değişkeninin içeriğini 1 artırır.
Sözdizimi: inc x
Notlar : x, az veya a0-z9'dur.
Ayrıca Bakınız: Aralık

Komut: giriş
Açıklama : klavyeden dize değişkenine giriş dizesi.
Sözdizimi: $x girin
Notlar: giriş, girişi yalnızca ENTER tuşuyla sonlandırır.
Notlar : Boşluklar, sekmeler ve diğer komik karakterlerin tümü
Notlar : değişkende saklanır.
Ayrıca Bakınız: yankıyı ayarlayın.
Örnek:
print "Tam adınızı girin :"
$n4 girin

komut: öldür
Açıklama : Bir işleme sinyal gönderir.
Sözdizimi: kill sinyali processID
Notlar: Hem sinyal hem de işlem kimliği tamsayı değerlerdir. İle aynı
Notlar: sinyal takma adlarının olmaması dışında standart unix öldürme
Notlar: kabul edildi ve sinyal isteğe bağlı değil.
Notlar : Sinyal gönderilebiliyorsa % olarak 0 döndürülür, -1
Notlar: aksi halde.
Notlar : Sinyal 0, prosesin varlığını tespit etmek için kullanılabilir.
Ayrıca Bakınız: bekleyin, pid(), ppid().
Örnek:
çatal
p=% olsun
eğer p = 0 çocuğa git
300 uyku
15 p öldür
1 uyku
0 p öldür
if % != 0 yazdır "Alt öğe sonlandırıldı\n" tamam git
print "Çocuk sonlandırılamadı!\n"
9 p öldür
1 uyku
0 p öldür
if % = 0 yazdır "Çocuk öldürülemedi!\n" hataya git
"Çocuk öldürüldü.\n" yazdır
:tamam
...

komut: izin ver
Açıklama : Değişken ataması yapar.
Sözdizimi: let x=içerik
Notlar : x, [$]a0-z9'dur.
Ayrıca Bakınız: inc, dec.
Örnek:
a=5 olsun
b=(zaman()-a)+5 olsun
y7=6809 olsun
let z=0%11010111 #İkili
z=077324 #oktal olsun
z=0xf5b8 olsun #onaltılı
$c="Daniel" olsun
$d=$c+" Chouinard" olsun
$s5="Frimpin´ Jeosaphat!"

Komut: lprint
Açıklama : Günlüğe virgülle ayrılmış bir argüman listesi yazdırın.
Sözdizimi : fprint var,stringvar,"text",...
Notlar : Yazdırma gibi ama ayrıntılı açıksa günlük girişi gibi yazdırılır.
Notlar: günlük kaydı stderr'e gönderilir.
Ayrıca Bakınız: print, eprint, fprint.

komut: aç
Açıklama : Bir dosyayı veya bir iletişim cihazını açar.
Sözdizimi : com aygıtı aç, com (stdin) aç, DOSYA dosyasını aç
Ayrıca bakınız: kapatın.
Örnek:
com /dev/cua1'i açın
38400n81 com'u ayarla
"/tmp/log" dosyasını aç
fprintf "Bu bir günlük\n"
dosyayı kapat

komut: yazdır
Açıklama : virgülle ayrılmış bir argüman listesi yazdırın.
Sözdizimi: print var,stringvar,"text",...
Notlar : Boşluklar ve yeni satırlar otomatik olarak eklenmez.
Ayrıca Bakınız: eprint, fprint, lprint.
Örnek:
b=26 olsun
$c="metin değişkenleri" olsun
print "Sabit metin ",b," ",$c," time: ",$time(),"\n"

Komut: putenv
Açıklama : Bir ortam değişkeni ayarlar.
Sözdizimi: putenv "var=içerik"
Notlar : Ortam değişkenleri otomatik olarak dışa aktarılır,
Notlar: asla iade edilmedi. Çocuk süreçleri devralır
Notlar: çevre.
Ayrıca Bakınız: $env().
Örnek:
putenv "SCRIPTDIR=/usr/lib/comgt/scripts"
sistem "dothat" # dothat env okur. var. SCRIPTDIR...

Komut : rem Diğer Adlar: #, //
Açıklama : Not. Satırın geri kalanı yoksayılır.
Sözdizimi : Bir boşluk "rem"den sonra gelmesi gerektiğini unutmayın.
Örnek:
#Bu bir açıklamadır
// Öyleyse bu
rem Burası disko değil.

komut: geri dön
Açıklama : Alt programdan döner.
Sözdizimi: dönüş
Ayrıca Bakınız: gosub.

komut: gönder
Açıklama : iletişim hattına bir dize gönderir (genellikle modem).
Sözdizimi: dize gönder
Notlar : Satır başı (ENTER) otomatik olarak gönderilmez
Notlar : (^m kullanın).
Örnek:
"atdt555-1212^m" gönder
$g+"^m" gönder
"Zaman "+$time()+"^m^j" gönder

Komut: ayarla
Açıklama : çalışma parametrelerini ayarlar.
Sözdizimi: parametre değerini ayarla
Notlar:

Komut Açıklaması
----------------------------- --------------------- ----------------------------
ekoyu açık|kapalı olarak ayarla Ekranda klavye yankısı.
comecho'yu aç|kapat Alınan karakterler ekranda yankılandı.
senddelay time_constant "gönder" için ara karakter gecikmesini ayarla
"waitfor" için büyük/küçük harf duyarlılığını yok saymayı on|off olarak ayarla.
Varsayılan=açık.
clocal on|off clocal on = modem sinyallerini yoksay
umask modu dosya modu oluşturma varsayılanlarını ayarlayın.
adam umask bakın.
ayrıntılı açık|kapalı ayrıntılı açık = hata ayıklama çıktısı etkin.
com com_params iletişim parametrelerini ayarlayın.
ör.: 19200n81, 300e71
baud |||
parite |
Veri bitleri |
Bitleri durdur |

Örnek:
yankıyı kapat
"Parola :" yazdır
$p girdi
"\n" yazdır
yankıyı aç
comecho'yu ayarla
clocal'ı aç
gönderme gecikmesini 0.1 ayarla
yok saymayı aç
38400n81 com'u ayarla
set umask 022 # sekizli olmalıdır (sıfırdan önce)
...

Clocal ile ilgili not:
Taşıyıcı tespit ettikten sonra komut dosyanızın çalışmaya devam etmesini istiyorsanız
sinyal düştü, clocal olarak ayarlayın, aksi takdirde bir CD düşmesine neden olur
kapatmak (kapatmak) için cihaz hattını kullanın. Bu, eğer olabilir,
Diyelim ki, komut dosyanız arar ve bağlanır, ardından bağlantıyı keser veya
dtr'yi (flaş) düşürür, ardından yeniden bağlanmayı dener.

komut: uyku
Açıklama : Yürütmeyi duraklatır.
Sözdizimi: uyku float_constant
Notlar : Float_constant 1/100 saniyeye kadar hassastır, aksi takdirde
Notlar : 100 saniyeden fazla, bu durumda hassasiyet
Notlar : 1 saniyeye düşer.

Örnek:
0.06 uyku
3 uyku
uyku 86400 /* Bütün gün */

komut: sistem
Açıklama : Bir sistem (unix) komutunu çağırır
Sözdizimi: sistem "komutu"
Ayrıca Bakınız: exec.
Örnek:
: dir
"dizin listesi",$cwd(),\n" yazdır
sistem "ls -l |daha fazla"

Komut : test tuşu
Açıklama : Klavyeyi tuş vuruşu için test eder, varsa % olarak 1 döndürür.
Sözdizimi: test anahtarı
Notlar : Yalnızca ENTER tuşu için test edilebilir. comgt'un gelecekteki sürümleri
Notlar : daha fazlasını test edecek ve anahtar kodlarını % olarak döndürecektir.
Ayrıca Bakınız: giriş.
Örnek:
n=1 olsun
: döngü
print n," koyun... ZZZzzz...\n"
uyku
dahil n
test anahtarı
eğer % = 0 döngüye git

komut: bekle
Açıklama : Bir alt işlemin sona ermesini bekleyin.
Sözdizimi: bekle
Notlar : Sonlandırılmış çocuğun işlem kimliği % olarak döndürülür
Ayrıca Bakınız: çatal, öldür.
Örnek:
çatal
p=% olsun
p=0 ise çocuğa git
p=-1 ise hataya git
print "Çocuğun bitirmesi bekleniyor..."
beklemek
"\n" yazdır
if %!=p yazdır "Bekleyin yanlış PID oldu!\n" hatasına gidin
print "Çocuk bitti.\n"

komut: bekle
Açıklama : Dize listesinden biri alınana kadar bekler
Sözdizimi: bekleme zaman aşımı "dize1", "dize2", "dize3"...
Notlar: Zaman aşımı, değişken bir zaman sabitidir. Waitquiet döner
Notlar: Alınan ilk dize için 0, ikincisi için 1, vb...
Notlar : ve bir zaman aşımı için -1. Vaka varsayılan olarak yoksayılır
Notlar: yoksayma durumu kapalı olarak ayarlanmıştır.
Ayrıca bakınız: alın.
Örnek:
:aramak
"atdt555-4411^m" gönder
bekle 60 "taşıyıcı yok", "meşgul", "çevir sesi yok", "bağlan"
eğer % = -1 zaman aşımına git
eğer % = 0 nocd'a git
eğer % = 1 tekrar aramaya git
eğer % = 2 alma hatası
% = 3 bağlandıysa

Komut: waitquiet
Açıklama : Bir süre iletişim hattının alımı durana kadar bekler.
Sözdizimi: waitquiet zaman aşımı sessiz zaman
Notlar: Hem zaman aşımı hem de sessiz zaman, değişken zaman sabitleridir
Notlar : 1/100 saniye ile. kesinlik. "Yutma" için kullanışlıdır
Notlar : Bir süre gelen veya bir süre bekleyen karakterler
Notlar: bilinmeyen komut istemi.
Örnek:
:yakın
"logoff^m" gönder
sessiz 10 0.5
"evet^m" gönder

Tamsayı fonksiyonlar
I-Fonksiyonu: Erişim
Açıklama : Bir dosyaya erişim haklarını doğrular
Sözdizimi : let x=access("/tmp/file","frwx")
Notlar : İkinci dize bir veya daha fazlasını içerir
Notlar : tekrar kontrol etmek için 'f','r','w','x'
Notlar: varlık, okuma, yazma ve yürütme izinleri.
Notlar : Kök kimliği altında, tek yararlı kontrol 'f'dir, çünkü
Notlar: diğerlerinin tümü true değerini döndürür.
Dönüş Değeri: Dosya varsa 0, okunabilir, yazılabilir,
Dönüş Değeri: yürütülebilir veya değilse -1.
Ayrıca bakınız: adam erişim(2)

I-Fonksiyonu: baud
Açıklama : İletişim hattının mevcut baud hızını döndürür.
Sözdizimi: izin ver x=baud()
Notlar : Modem bağlantı hızı ile mutlaka eşleşmez.
Ayrıca Bakınız: $baud().

I-Fonksiyonu: len
Açıklama : Bir dizenin uzunluğunu döndürür.
Sözdizimi : let x=len($s)
Notlar: "" sıfırdır. Dizelerin şu anda maksimum uzunluğu
Notlar: 1024 karakter. comgt dize taşmasını işlemez
notlar: hiç.

I-Fonksiyonu: htime
Açıklama : Komut dosyasının başlangıcından itibaren yüzlerce saniye döndürür.
Sözdizimi : let x=htime()
Notlar : hset ile belirli bir değere ayarlayın.
Ayrıca Bakınız: hset.

I-Fonksiyonu: pid
Açıklama : Geçerli işlemin işlem kimlik numarasını döndürür (comgt)
Sözdizimi: izin ver x=pid()
Ayrıca Bakınız: ppid(), çatal

I-Fonksiyonu: ppid
Açıklama : Üst işlemin işlem kimlik numarasını döndürür.
Sözdizimi: izin ver x=ppid()
Notlar : Çatallı çocuk tarafından ebeveyni tespit etmek için kullanılabilir
Notlar: süreç.

I-Fonksiyonu: zaman
Açıklama : 1 Ocak 00:00:00 1970 GMT'den bu yana geçen süreyi saniye cinsinden döndürür.
Sözdizimi: izin ver x=zaman()
Notlar : Saat farklarını hesaplamak için kullanılır.
Ayrıca Bakınız: $time()

I-Fonksiyonu: val
Açıklama : Dizenin değerini döndürür.
Sözdizimi : let x=val($x)
Notlar : Dize bir ifade değildir; yalnızca [0-9] içermelidir
Notlar: karakterler. comgt'ın gelecekteki sürümleri,
Notlar : ifadeleri değerlendirin. (Belki) (Bu yazıldı 6
Not: yıllar önce.)

I-Fonksiyonu: ayrıntılı
Açıklama : Ayrıntılı ayarın değerini döndürür.
Sözdizimi: let x=ayrıntılı()
Notlar : 0=kapalı, 1=açık.

dizi fonksiyonlar
S-İşlevi: temel ad
Açıklama : Yolun temel ad bölümünü döndürür.
Sözdizimi : let $x=$basename($p)
Notlar: $basename("/usr/bin/more")="daha fazla"
Ayrıca Bakınız: $dirname().

S-Fonksiyonu: baud
Açıklama : Geçerli baud hızının dize gösterimini döndürür.
Sözdizimi: $x=$baud() olsun
Notlar : "set com" ile tanımlanmıştır
Ayrıca Bakınız: baud(), com'u ayarlayın.

S-Fonksiyonu: cwd
Açıklama : Geçerli çalışma dizini yol adını döndürür.
Sözdizimi: $x=$cwd() olsun
Ayrıca bakınız: cd.

S-Fonksiyonu: dev
Açıklama : Mevcut iletişim cihazı yol adını döndürür.
Sözdizimi : izin ver $x=$dev()
Notlar: "-d" komut satırı argümanı veya "open com" ile tanımlanır
Ayrıca Bakınız: com'u açın.

S-Fonksiyonu: dirname
Açıklama : Yolun dizin adı bölümünü döndürür.
Sözdizimi : let $x=$dirname($p)
Notlar : $dirname("/usr/bin/more")="/ Usr / bin"
Ayrıca Bakınız: $basename().

S-Fonksiyonu: env
Açıklama : Bir ortam değişkeninin içeriğini döndürür
Sözdizimi : izin ver $x=$env("HOME")
Notlar : Var olmayan değişkenler boş bir dize döndürür.
Ayrıca Bakınız: putenv.

S-Fonksiyonu : altıgen
Açıklama : Değeri onaltılık gösterime dönüştürür
Sözdizimi : $x=$hex(x) olsun
Notlar : Küçük harflerle af harfleri, önünde "0x" yok
Ayrıca Bakınız: $hexu(), $oct().

S-Fonksiyonu: hexu
Açıklama : Değeri onaltılık gösterime dönüştürür
Sözdizimi : $x=$hex(x) olsun
Notlar : AF harfleri büyük, "0x" öncesinde yok
Ayrıca Bakınız: $hex(), $oct().

S-Fonksiyonu : hms
Açıklama : Saniye sayısını zaman dizisine dönüştürür
Sözdizimi : $x=$hms(x) olsun
Notlar : Biçim "SS:DD:SS" şeklindedir. Kronometre ekranları için kullanışlıdır
Notlar: "time()" ile kullanın, bir değişkeni artırmaya çalışmayın
Notlar : "uyku 1" kullanılarak her saniye. (ISP komut dosyası örneğine bakın)
Notlar : 99 saat 59 dakika sonra format "HHH:DD:SS" olur,
Notlar: 59s...
Ayrıca Bakınız: zaman().

S-Fonksiyonu : sol
Açıklama : Bir dizgenin sol kısmını döndürür
Sözdizimi : let $x=$left($s,l)
Notlar : $s=Kaynak dizi, l=uzunluk
Notlar: l, dizenin uzunluğundan daha az olmalıdır.
Ayrıca Bakınız: $right(), $mid().

S-Fonksiyonu: orta
Açıklama : Bir dizenin orta bölümünü döndürür.
Sözdizimi : let $x=$mid($s,s,l)
Notlar : $s=Kaynak dizi, s=başlangıç, l=uzunluk
Notlar: s, dizenin uzunluğundan daha az olmalıdır, l olabilir
Notlar: bir sayının sağ tarafını döndürmek için çok büyük bir sayı (9999)
Notlar: sonuna kadar dize. bir dizenin ilk karakteri
Notlar: konum 0, 1 değil.
Ayrıca Bakınız: $sağ(), $left().

S-Fonksiyonu: ekim
Açıklama : Değeri sekizlik gösterime dönüştürür.
Sözdizimi : $x=$oct(x) olsun
Ayrıca Bakınız: $hex(), $hexu().

S-Fonksiyonu : sağ
Açıklama : Bir dizgenin sağ kısmını döndürür.
Sözdizimi : izin ver $x=$doğru($s,l)
Notlar : $s=Kaynak dizi, l=uzunluk
Notlar: l, dizenin uzunluğundan daha az olmalıdır.
Ayrıca Bakınız: $left(), $mid().

S-Fonksiyonu: rpipe
Açıklama : Bir sistem boru hattı komutundan ilk satırı döndürür
Sözdizimi: let $x=$rpip("/bin/ls |grep dosyam")
Notlar : Head, tail, grep ile kullanılmadığı sürece pek kullanışlı değildir.
notlar: vb...
Ayrıca Bakınız: sistem.

S-Fonksiyonu: zaman
Açıklama : 24 karakterlik yerel zaman dizisini döndürür
Sözdizimi : izin ver $x=$time()
Ayrıca Bakınız: zaman().
Notlar : Saat şu formattadır: Pzt Nis 8 14:21:22 1996
012345678901234567890123
1 2

S-Fonksiyonu: daha düşük
Açıklama : Küçük harfli dizeyi döndürür.
Sözdizimi : let $x=$tolower($y)

S-Fonksiyonu : toplayıcı
Açıklama : Büyük harfli dizeyi döndürür.
Sözdizimi : izin ver $x=$toupper($y)

test operatörler
Operatör Tanımı Örnek Sonuç
= 1+2=3 evet ise eşittir
1+2!=3 ise != eşit değil hayır
<> 1+2 ise eşit değildir<>3 hayır
> 1+3>3 evet ise büyüktür
< Daha az ise 1+3<3 hayır
>= 3>=3 evet ise büyük veya eşit
<= 2<=3 evet ise daha büyük veya eşit

Dizeler aynı operatörler kullanılarak karşılaştırılabilir.

"aaa" < "aab", "aaaa" > "aaa", "Test" != "deneme", "Bir" = "Bir",
"A" > "a", "Fumble" <= "Fumigasyon", "Farsical" <> "Komedi"

not "yoksaymayı açık olarak ayarla", dize karşılaştırmaları için geçerli DEĞİLDİR.

ifade operatörler
Operatör Tanımı Örnek Sonuç
+ Toplama let a=2+2 4
+ Birleştirme $b="aa"+"bb" "aabb" sağlar
- Çıkarma e=2-5 -3 olsun
* Çarpma f=11*2 22 olsun
/ Bölme let g=34/11 3
& Bit-Wise VE h=42&7 2 olsun
| Bit-Wise VEYA izin ver a=42|5 47
^ Bit-Wise XOR a=42^7 olsun 45

Karışık ifade örnekleri:

#00:00:00'dan bu yana geçen saniye sayısını döndürür
let $t=$time() #Anlık görüntü al.
let a=(val(mid$($t,11,2))*3600)+(val(mid$($t,14,2))*60)+val(mid$($t,17,2))
#comgt'un ifadesi nedeniyle fazladan parantezlere dikkat edin
#değerlendiricinin beyin ölümü gerçekleşti.
#Örneğin 5-2+1 size 4 vermeli değil mi? Peki, göre
#getvalue(), aslında 2 verir, çünkü bunu biraz
#sağdan sola.
#Yani 5-2+1'i doğru değerlendirmek için (5-2)+1'i kullanın. Eğer kullanıyorsanız
#basit, iki elemanlı hesaplamalar, merak etmeyin.
#5-2 size 3 verecek.

#Birleştirme (Çağrılar)
exec "cu -l "+$dev()+" -s "+$baud()"

#Test koşulunda
a+c > strlen($c) çok fazla gittiyse

#Dize karşılaştırması
$t=$orta($zaman(),11,8) olsun
$t > "19:59:59" ise "Bunun için çok geç!\n" komutunu yazdırın
if $t < "08:00:00" yazdır "Çok erken!\n" çok erken gitti
if $t = "00:00:00" print "Aman Tanrım! Şimdi Twinkee zamanı!\n"

BİLİNEN ÖZELLİKLER


getvalue() ayrıştırıcısı. Beni güldürüyor, bu yüzden sanırım bu şekilde bırakacağım. -
[e-posta korumalı]

ÇEVRE DEĞİŞKENLER


COMGTPIN - PIN komut dosyası COMGTAPN tarafından kullanılmak üzere SIM'in 4 haneli pini - yazılacak APN
APN komut dosyası tarafından kullanılan veri kartı.

YAZARLAR


Daniel.Chouinard[e-posta korumalı]> orijinali yazdı dkon Yarar.

Paul Hardwick[e-posta korumalı]> yerleşik olması koşuluyla en son derleyiciler için güncelledi.
komut dosyası işlevinde ve GPRS ve 3G veri kartlarına karşı test etti.

Martin Gregorie[e-posta korumalı]> için orijinal kılavuz sayfasını yazdı komut itibaren dkon
belgeler ve paketlenmiş komut dağıtım için.

Tarihçe
Daniel Chouinard en çok (%90) yazdı dkon 1989'da Unix Uygulamaları yapmaya başladığında
Müşteri sistemlerine çoğunlukla modem ile teknik destek. Bütün bunları yazmaktan bıkmıştı.
cu'yu her kullandığında şifreler ve komik arama şarj kodları. Ayrıca çalıştığı şirket
arama sürelerini ve tahmini maliyetleri kaydedecek bir sisteme ihtiyaç duyulduğu için. Böylece dkon doğdu.
Altı veya yedi yıl sonra (1996) ve ISP sitesine bağlanmak için pppd kullanıyordu. o
az çok mutlu sohbet ancak akış kontrolünden ve çoklu yanıt kontrollerinden yoksun olduğunu buldu
"atdt..." den. "Taşıyıcı yok", "çevir sesi yok" için farklı şeyler yapmasını istedi ve
"meşgul". Bunu düşünmüş olmasına rağmen sohbet bulduğunda muhtemelen bir gün geliştirilecekti
dcon.c eski 45M kasetlerinden birinde onu Linux kutusunda derlemeye çalıştı ve
işte oldu. Sonunda ona birkaç şey ekledi (öldür, çatalla, bekle, 1/100 sn.
kez) ve orada bıraktı.

Birkaç yıl önce Paul Hardwick programı buldu, dkon 0.97, en son 1996 yılında değiştirilmiştir.
Bu programın amacı, Linux seri portlarını kontrol edecek komut dosyalarını çalıştırmaktı. bu
uygulama, Windows için yazdığı bir şeye çok benziyordu. Her neyse, daha doğrusu
yeniden icat etmektense yazar Daniel Chouinard ile temasa geçti ve yeniden kullanmak için ondan izin istedi.
kod. Neyse ki izin verdi ve adı verilen basit ama kullanışlı bir yardımcı program komut oldu
yaratıldı. Paul, motoru günümüzle uyumlu hale getirmenin dışında hiçbir kredi almıyor.
derleyiciler. temelde dkon yeniden paketlenmiş.

20 Ekim 2006 komut(1)

onworks.net hizmetlerini kullanarak comgt çevrimiçi kullanın


Ücretsiz Sunucular ve İş İstasyonları

Windows ve Linux uygulamalarını indirin

  • 1
    Firebird
    Firebird
    Firebird RDBMS, ANSI SQL özellikleri sunar
    & Linux, Windows üzerinde çalışır &
    birkaç Unix platformu. Özellikler
    mükemmel eşzamanlılık ve performans
    & güç...
    Firebird'ü indirin
  • 2
    KompoZer
    KompoZer
    KompoZer, aşağıdakileri kullanan bir wysiwyg HTML editörüdür.
    Mozilla Besteci kod tabanı. Olarak
    Nvu'nun gelişimi durduruldu
    2005'te KompoZer birçok hatayı düzeltti ve
    bir f ekler...
    KompoZer'i indirin
  • 3
    Ücretsiz Manga İndiricisi
    Ücretsiz Manga İndiricisi
    Ücretsiz Manga İndiricisi (FMD), bir
    yazılmış açık kaynak uygulama
    Yönetmek için Object-Pascal ve
    çeşitli web sitelerinden manga indirmek.
    Bu bir ayna...
    Ücretsiz Manga İndiriciyi İndirin
  • 4
    UNetbootin
    UNetbootin
    UNetbootin, önyüklenebilir oluşturmanıza olanak tanır
    Ubuntu, Fedora ve için canlı USB sürücüler
    olmayan diğer Linux dağıtımları
    CD yazma. Windows, Linux üzerinde çalışır,
    ve ...
    UNetbootin'i indirin
  • 5
    Dolibar ERP - CRM
    Dolibar ERP - CRM
    Dolibarr ERP - CRM kullanımı kolay
    ERP ve CRM açık kaynak yazılım paketi
    (bir web php sunucusuyla veya
    işletmeler için bağımsız yazılım),
    temeller...
    Dolibarr ERP'yi İndirin - CRM
  • 6
    SQuirreL SQL İstemcisi
    SQuirreL SQL İstemcisi
    SQuirreL SQL Client, grafiksel bir SQL'dir.
    izin verecek Java ile yazılmış istemci
    bir JDBC'nin yapısını görüntülemek için
    uyumlu veritabanı, içindeki verilere göz atın
    masalar...
    SQuirreL SQL İstemcisini İndirin
  • Daha fazla »

Linux komutları

Ad