«shell-script» etiketlenmiş sorular

Kabuk komut dosyaları, kabuk tarafından yorumlanan yürütülebilir dosyalar (bash, zsh, vb.) İle ilgili sorular.

8
Koşullara bağlı olarak vaka dönüşümü
Ben bash bir durum koşulunda bir if koşul dayalı düşme olması için bir yol arıyorum. Örneğin: input="foo" VAR="1" case $input in foo) if [ $VAR = "1" ]; then # perform fallthrough else # do not perform fallthrough fi ;; *) echo "fallthrough worked!" ;; esac Yukarıdaki kodda, eğer değişken …

3
Bir kabuk komut dosyasında, arka planda bir komutu nasıl başlatabilirim (2) x saniye bekler (3) bu komut çalışırken ikinci bir komut çalıştırır?
Bunun olması gereken şey: A sürecini arka planda başlat x saniye bekle B sürecini ön planda başlat Beklemeyi nasıl gerçekleştirebilirim? Görüyorum ki 'uyku' her şeyi durduruyor gibi görünüyor ve aslında A sürecinin tamamen bitmesini 'beklemek' istemiyorum. Zaman bazlı döngüler gördüm ama daha temiz bir şey olup olmadığını merak ediyorum.

2
%% işlev adında ne anlama geliyor?
Çıktılarına baktığımda env, aşağıdaki fonksiyonun da olduğunu fark ettim. BASH_FUNC_mc%%=() { . /usr/share/mc/mc-wrapper.sh } /Usr/share/mc/mc-wrapper.sh dosyasının içeriği şöyledir. MC_USER=`id | sed 's/[^(]*(//;s/).*//'` MC_PWD_FILE="${TMPDIR-/tmp}/mc-$MC_USER/mc.pwd.$$" /usr/bin/mc -P "$MC_PWD_FILE" "$@" if test -r "$MC_PWD_FILE"; then MC_PWD="`cat "$MC_PWD_FILE"`" if test -n "$MC_PWD" && test -d "$MC_PWD"; then cd "$MC_PWD" fi unset MC_PWD fi rm …

2
bash değişkeni 0x00 değişkenini saklayamaz
Ben dd ile bazı hile yapmaya çalışıyorum. Ben dd içine boru için "başlık" adlı bir değişkende bazı hexvalues ​​saklamak mümkün olacağını düşündüm. Değişken olmadan ilk adım şuydu: $ echo -ne "\x36\xc9\xda\x00\xb4" |dd of=hex $ hd hex 00000000 36 c9 da 00 b4 |6....| 00000005 Bundan sonra bunu denedim: $ header=$(echo …
11 linux  bash  shell-script  dd 

1
Kabuk betiğimin dosya işleme sağlamlığını nasıl test edebilirim?
Bazı "normal" dosya adlarını işleyen bir kabuk komut dosyası yazdım, ama okudum Neden kabuk komut dosyam boşluk veya diğer özel karakterlerde boğuluyor? Ve neden ls çıktısını ayrıştırmamak gerekir ve ben daha sağlam olmasını ve geçerli dosya adlarını (ve / veya dizin adlarını) işlemesini istiyorum. Scriptimi çalıştırmak için nasıl bir dosya …


1
Bir dosyanın içeriğini kabuk değişkeni ayarlamanın zarif bir yolu var mı?
Dosyada bazı yapılandırma verilerim olduğunu varsayalım config. Kolaylık sağlamak için, bu verileri bir kabuk değişkenine yüklemek istiyorum CONFIG_DATA. Açıkçası yapabilirim: CONFIG_DATA="$(cat config)" Ama bu bana bir işe yaramazcat gibi geliyor. Bunu yapmanın tek yolu bu mu? Yoksa bunu yapmanın daha zarif bir yolu var mı? Yanıtlar POSIX'i tercih etmelidir, ancak …

11
/ Bin / sh işlevine son argüman nasıl alınır
Uygulamanın daha iyi bir yolu nedir print_last_arg? #!/bin/sh print_last_arg () { eval "echo \${$#}" # this hurts } print_last_arg foo bar baz # baz (Diyelim ki, ne yapmam gerektiğini bilmek #!/usr/bin/zshyerine #!/bin/sh. Sorunum bunu uygulamak için makul bir yol bulmak #!/bin/sh.) EDIT: Yukarıdaki sadece saçma bir örnektir. Amacım son argümanı …


3
Değişken adıyla değişkenleri tanımlama
Bu senaryoda yanlış olan ne? A1 = 1, B1 = 1, C1 = 1 tanımlamaya çalışıyorum LIST="A B C" for x in $LIST do "$x"1=1 done ve sonuç: ./x.: line 7: A1=1: command not found ./x.: line 7: B1=1: command not found ./x.: line 7: C1=1: command not found


6
Başka bir dosyada bulunan satırlara bağlı olarak dosyadaki satırları kaldırma
File1.txt dosyası aşağıdaki gibi satırlar içerir: /api/purchase/<hash>/index.html Örneğin: /api/purchase/12ab09f46/index.html File2.csv dosyası aşağıdaki gibi satırlar içerir: <hash>,timestamp,ip_address Örneğin: 12ab09f46,20150812235200,22.231.113.64 a77b3ff22,20150812235959,194.66.82.11 Ben has2 değeri file1.txt de mevcut olduğu tüm satırları kaldırarak file2.csv filtre istiyorum. Bu demek oluyor ki: cat file1.txt | extract <hash> | sed '/<hash>/d' file2.csv ya da bunun gibi bir …

4
Dize textfile hızlı bölme yöntemi?
İki metin dosyam var: string.txt ve lengths.txt String.txt: abcdefghijklmnopqrstuvwxyz lengths.txt 5 4 10 7 Dosyayı almak istiyorum >Entry_1 abcde >Entry_2 fghi >Entry_3 jklmnopqrs >Entry_4 tuvwxyz Yaklaşık 28.000 girişle çalışıyorum ve 200 ile 56.000 karakter arasında değişiyorlar. Şu anda kullanıyorum: start=1 end=0 i=0 while read read_l do let i=i+1 let end=end+read_l …


3
Bir Dize'den Bash'deki “kelimeler” Dizisine git
Her girişte bu dize her kelime olduğu bir dizeye bir dizeden gitmek gerekiyor. Örneğin, aşağıdakilerden başlayarak: VotePedro="Vote for Pedro" Diziye ihtiyacım var: Vote For Pedro Hangi daha sonra üzerinden tekrarlamak mümkün olmalıdır: for i in "${votePedroArray[@]}" do ## Do something done

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.