«shell» etiketlenmiş sorular

Kabuk Unix'in komut satırı arabirimidir. Kabuktaki komutları etkileşimli olarak yazabilir veya görevleri otomatikleştirmek için komut dosyaları yazabilirsiniz. / Bin / sh ve en uyumlu kabuklara (kül, bash, ksh, zsh,…) uygulanan sorular için bu etiketi kullanın. Hatalı kabuk komut dosyaları için lütfen buraya göndermeden önce http://shellcheck.net adresinden kontrol edin.

4
“Bağımsız değişkenleri komut olarak yorumlayan komutlara güvenilir olmayan verileri iletecek herhangi bir komutu çalıştır”
Findutils 'el kitabından: Örneğin, bu iki komut gibi yapılar # risky find -exec sh -c "something {}" \; find -execdir sh -c "something {}" \; çok tehlikelidir. Bunun nedeni, '{}' öğesinin noktalı virgül veya kabuğa özel diğer karakterleri içerebilecek bir dosya adına genişletilmesidir. Örneğin birisi dosyayı oluşturursa /tmp/foo; rm -rf …
18 shell 

1
bash "IFS" değişkeninin değerine bağlı olarak davranışını değiştirir
IFSDeğişkeni bir boşluğa ayarladığımda, bashbirden çok boşluğu bir boşluk olarak ele myprogramalır (aldığı komut satırı bağımsız değişkenlerini basan bir programdır): IFS=" " x="hello hi world" ./myprogram $x argv[1] = hello argv[2] = hi argv[3] = world Ama IFSdeğişkeni virgül olarak ayarladığımda, bashbirden fazla virgülün virgül olarak kabul edilmemesi gerekir: IFS="," …
18 bash  shell 

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 …


3
[“$ {1: 0: 1}” = '-'] Anlamı
Bir MySQL işlemi başlatmak için aşağıdaki komut dosyası var: if [ "${1:0:1}" = '-' ]; then set -- mysqld_safe "$@" fi if [ "$1" = 'mysqld_safe' ]; then DATADIR="/var/lib/mysql" ... 1: 0: 1 bu bağlamda ne anlama geliyor?
18 linux  bash  shell 

2
JavaScript'te kabukta “split ()” gibi bir şey var mı?
split()Bir dizeyi bir diziye ayırmak için JavaScript'te kullanımı çok kolaydır . Kabuk betiği ne olacak? Bunu yapmak istediğimi söyle: $ script.sh var1_var2_var3 Kullanıcı var1_var2_var3script.sh dosyasına böyle bir dize verdiğinde, betiğin içinde dizeyi aşağıdaki gibi bir diziye dönüştürür array=( var1 var2 var3 ) for name in ${array[@]}; do # some code …

4
Ubuntu-OSX uyumluluğu ve kullanım kolaylığı için #! / Bin / sh veya #! / Bin / bash kullanın & POSIX
İstediğim kabuğu çağırmak için komut dosyalarının ilk satırı olarak kullanabileceğimi biliyorum. Misiniz #!/bin/shtüm Unix sistemleri ile uyumluluk mutlak gereklilik ise tavsiye edilebilir? Benim durumumda önemsediğim tek işletim sistemi Ubuntu (Debian) ve OSX. Bu göz önüne alındığında #!/bin/bash, her iki sistemde de işe yarayacağından emin olabilir miyim ? Bu aynı zamanda …
18 bash  shell  ubuntu  osx  posix 

2
Bir değişken alt kabukta neden görünür?
Learning Bash Book, bir alt kabuğun yalnızca ortam değişkenlerini ve dosya tanımlayıcılarını vb. Devralacağını ve dışa aktarılmayan değişkenleri devralmayacağını belirtir: $ var=15 $ (echo $var) 15 $ ./file # this file include the same command echo $var $ Bildiğim gibi, kabuk için ()ve için iki alt kabuk oluşturacak ./file, ancak …
18 bash  shell  subshell 


2
Taşınabilir komut dosyaları yazmak ne zaman önemlidir?
Yazdığım çoğu kod PHP. Son zamanlarda kabuk komut dosyası öğrenmeye başladım. Karşılaştığım kaynakların ve öğreticilerin çoğu Bash'a özgüdür. Bazıları bashisms hakkında uyarır, bazıları ise uyarmaz. Burada çok fazla okudum ve Stack Overflow. Ne zaman bir cevap bashisms kullanıyorsa , birileri kaçınılmaz olarak şunları söyleyecektir: <Buraya bashizm ekle> kullanmamalısınız. Taşınabilir değil. …

2
Kabuk değişkeninin genişlemesi ve glob ve ayrılmanın etkisi
Bu yazı aslında iki ayrı soru içeriyor, ancak bunları birlikte gruplandırmak biraz daha bağlam verecek. Ben sıkıntıyı yaşayan değişkenler etrafında tırnak bu soruya ama oldukça anlamıyorum değişken genişleme ilk etapta ortalama. İlk sorum: Unix / linux konuşmada değişken genişleme nedir ? Sorumun ikinci kısmı aşağıdaki terimlerle ilgilidir: gıdım bile Bölünmüş …

2
Bir uygulamadan düzgün şekilde çıkmadan bir terminal penceresini kapatmak zararlı mıdır?
Ubuntu 12.04 LTS kullanarak sorum şu: Terminal penceresinde bir uygulama başlattıysam, ilk önce uygulamadan çıkmadan sadece terminal penceresini kapatmakla ilgili kötü bir şey var. Örneğin, MATLAB kullanıyorum. Bir terminal açıyorum ve yazıyorum matlab -nodisplay -nodesktop -nosplash ve bir sürü komut dosyası çalıştırın. Sonra ben de yapabilirim exit MATLAB'ı sonlandırmak ve …


4
Git yapılandırması birden çok depoda ayarlanabilir mi?
Git, yapılandırma değerlerini üç düzeyde destekliyor gibi görünüyor: Sistem başına global ayarlar (içinde saklanır /etc/git-core) Kullanıcı başına global ayarlar (içinde saklanır ~/.gitconfig) Havuz başına yerel ayarlar (içinde saklanır $REPO/.git/config) Bu seçenekler temelin çoğunu kapsıyor, ancak dördüncü seviyeyi ele almanın bir yolunu arıyorum. Ben user.emailher zamankinden farklı bir değer kullanmanız gereken …
18 shell  git 

3
'Top' ile belirli süreçler nasıl seçilir?
Bir programın birden fazla örneği olması durumunda çalıştırma pidof programşunları sağlar: `1 2 3` top -pvirgülle ayrılmış argümanlar kabul eder: 1, 2, 3. Bu top -p `pidof program`işe yaramayacağı anlamına gelir : top: unknown argument '1' usage: top -hv | -bcisSH -d delay -n iterations [-u user | -U user] …

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.