«variable» etiketlenmiş sorular

Değişken, sembolik bir anlamla doğru seçilirse, bir değeri veya değerleri tutan bir addır. Sorunuz kabuk komut dosyasında değişkenlerin kullanımına özelse bu etiketi kullanın (programlama dillerindeki değişkenler hakkında soru sormak istiyorsanız, muhtemelen StackOverflow'da sormalısınız)

2
“” İçeren bir dize içine değişkenler nasıl eklenir?
Değişkenleri ekleyerek bir xml dizesi oluşturmak istiyorum: str1="Hello" str2="world" xml='<?xml version="1.0" encoding="iso-8859-1"?><tag1>$str1</tag1><tag2>$str2</tag2>' echo $xml Sonuç olmalıdır <?xml version="1.0" encoding="iso-8859-1"?><tag1>Hello</tag1><tag2>world</tag2> Ama anladığım şey: <?xml version="1.0" encoding="iso-8859-1"?><tag1>$str1</tag1><tag2>$str2</tag2> Ben de denedim xml="<?xml version="1.0" encoding="iso-8859-1"?><tag1>$str1</tag1><tag2>$str2</tag2>" Ancak bu, içteki çift tırnak işaretini kaldırır ve verir: <?xml version=1.0 encoding=iso-8859-1?><tag1>hello</tag1><tag2>world</tag2>
25 bash  shell  variable  xml 



5
[[]] Testinde neden çift tırnak kullanılmalı?
Bir bash betiğinde 2 tamsayımız olduğunu varsayalım: value1=5 value2=3 Öyleyse neden bir test durumunda çift tırnak kullanmamız gerekiyor? Örneğin: if [[ "$value1" -eq "$value2" ]] Neden sadece aşağıdakileri kullanmıyorsunuz? if [[ $value1 -eq $value2 ]] Bana göre çift tırnak bir anlam ifade etmiyor.
23 bash  shell  quoting  variable  test 



2
Bir kabuk değişkenini boş bir birleştirme biçiminde ayarlama
Gerçekten bir şeyler listesindeki ilk "null olmayan" değeri için bir değişken ayarlayabilirsiniz "null birleştirme", düşkün. Birçok dil bunu destekliyor, örneğin: C #: String myStr = string1 ?? string2 ?? "default"; JavaScript: var myStr = string1 || string2 || "default"; ...vb. Ben sadece bu bir değişken ayarlamak için Bash yapılabilir mi …
20 bash  shell  variable 

4
dirname ve basename ve parametre genişletmesi
Bir formu diğerine tercih etmek için nesnel bir neden var mı? Performans, güvenilirlik, taşınabilirlik? filename=/some/long/path/to/a_file parentdir_v1="${filename%/*}" parentdir_v2="$(dirname "$filename")" basename_v1="${filename##*/}" basename_v2="$(basename "$filename")" echo "$parentdir_v1" echo "$parentdir_v2" echo "$basename_v1" echo "$basename_v2" üretir: /some/long/path/to /some/long/path/to a_file a_file (v1 kabuk parametresi genişletme kullanır, v2 harici ikili dosyalar kullanır.)

4
Bir değişkenin başka bir komut dosyasının içeriği olarak kullanılması
Bu soru, düzgün bir şekilde kaçak bir dize değişmezinin nasıl yazılacağı ile ilgili değildir . Bir komut dosyasında veya diğer programlarda doğrudan tüketim için değişkenlerden nasıl kaçacağı ile ilgili olmayan herhangi bir soru bulamadım. Amacım başka bir komut dosyası oluşturmak için bir komut dosyasını etkinleştirmek. Bunun nedeni, oluşturulan komut dosyalarındaki …


5
Boru değişken atar
Basitlik için şunu yapmak istiyorum: echo cart | assign spo; echo $spo Çıktı: araba Böyle bir assignuygulama var mı? Bunu ikame kullanarak yapmanın tüm yollarının farkındayım.
19 bash  variable 

3
Komut seçenekleri için kabuk değişkenlerini kullanma
Bash betiğinde, kullandığım seçenekleri rsyncayrı bir değişkende depolamaya çalışıyorum . Bu basit seçenekler (gibi --recursive) için iyi çalışır , ancak ile ilgili sorunlar yaşıyorum --exclude='.*': $ find source source source/.bar source/foo $ rsync -rnv --exclude='.*' source/ dest sending incremental file list foo sent 57 bytes received 19 bytes 152.00 bytes/sec …
19 bash  variable 

1
$ {$ #} Neden kabuktaki $$ ile aynı sonucu döndürüyor?
Son konumsal parametre setini almaya çalışırken /bin/dashdenedim echo ${$#}. Şaşırtıcı bir şekilde bu bir hatayla sonuçlanmadı, ancak $$değişken içeriklerle aynı olan PID'ye dönüştü . Soru, bu sözdizimi neden işe yaradı? Kabuğun burada uygulandığı sözdizimi kuralı nedir? Temel olarak, yaptığım şey $ set 1 2 3 4 5 $ echo ${$#} …
18 shell  variable 

3
Tırnak içine alınmış bir değişkendeki seçenekler neden başarısız olur, ancak alıntı yapılmadığında çalışır?
Ben bash, örneğin "$ foo" yerine $ foo değişkenleri alıntı gerektiğini okumuştum. Ancak, bir senaryo yazarken, tırnak işaretleri olmadan çalıştığı ancak onlarla çalışmadığı bir durum buldum: wget_options='--mirror --no-host-directories' local_root="$1" # ./testdir recieved from command line remote_root="$2" # ftp://XXX recieved from command line relative_path="$3" # /XXX received from command line Bu …

6
Değişkenler yürütüldüğünde alıntılanmalıdır mı?
Kabuk komut dosyalamasında genel kural, zorlayıcı bir neden olmadığı sürece değişkenlerin her zaman alıntılanması gerektiğidir. Muhtemelen bilmek istediğinizden daha fazla ayrıntı için şu harika Soru ve Cevaplara bir göz atın: bash / POSIX mermilerinde bir değişkeni alıntılamayı unutmanın güvenlik sonuçları . Bununla birlikte, aşağıdaki gibi bir işlevi düşünün: run_this(){ $@ …

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.