«shell-script» etiketlenmiş sorular

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

1
Bu Dockerfile giriş noktasında “set -” ne yapar?
Bu Docker giriş noktasının ne yaptığını anlamaya çalışıyorum . Bana öyle geliyor ki Dockerfiles yazarken çok yaygın bir kalıp, ancak benim bash becerilerim sınırlı ve tüm özel bash sembolleri kung fu hakkında hiçbir fikrim yok. Ayrıca, "-", "$!" vb Bunlar bash dünyada ne denir? Özetlemek gerekirse, aşağıdaki satır ne yapmaya …
41 shell-script  set 


5
Bir dosyadaki ortam değişkenlerini gerçek değerleri ile değiştir.
Bir dosyadaki ortam değişkenlerini değiştirmek / değerlendirmek için kolay bir yol var mı? Diyelim ki içinde bir dosya config.xmlvar: <property> <name>instanceId</name> <value>$INSTANCE_ID</value> </property> <property> <name>rootPath</name> <value>/services/$SERVICE_NAME</value> </property> ...vb. $INSTANCE_IDDosyada, INSTANCE_IDortam değişkeninin $SERVICE_NAMEdeğeri ile, SERVICE_NAMEenv var değerinin yerine geçmek istiyorum . Hangi ortam değişkenine ihtiyaç duyulduğunu önceden bilmiyorum (daha doğrusu, biri …


3
Bir dize alt dize içeriyorsa test edin
Kod bende file="JetConst_reco_allconst_4j2t.png" if [[ $file == *_gen_* ]]; then echo "True" else echo "False" fi file"Gen" içeriyorsa test ederim . Çıktı "Yanlış" dır. Güzel! Sorun, "gen" i bir değişkenle değiştirdiğimde testseq: file="JetConst_reco_allconst_4j2t.png" testseq="gen" if [[ $file == *_$testseq_* ]]; then echo "True" else echo "False" fi Şimdi çıktı "Doğru". …

4
nvm komutu bash betiğinde mevcut değil
İçinde nvmve sonunda düğümün yükleneceği bir komut dosyası oluşturmaya çalışıyorum . CURL ile kurdum nvm. Ben .profileveya .bashrcdosyadaki değişiklikleri görüyorum (her ikisi de çalışır) ve nvmbash isteminde yazarken, mevcut seçenekleri gösterir . Elle düğümü yükleyebilirim, ancak nvmkomutu bir kabuk betiğine koyar yerleştirmez : nano test.sh #!/bin/bash nvm ve ile çalıştırın: …

2
Bash argümanlarını boşluklu tek dizgeye katmak
Tüm argümanları bir Bash işlevine, her argümanı ayıran boşluklarla tek bir dizgede birleştirmeye çalışıyorum. Ayrıca, dizenin tüm dizenin etrafına tek tırnak içermesi gerekir. İşte şimdiye kadar elimde olan şey ... $array=("$@") str="\'" for arg in "${array[@]}"; do let $str=$str+$arg+" " done let $str=$str+"\'" Açıkçası bu işe yaramadı ama bunu başarmanın …

2
Awk '! A [$ 0] ++' nasıl çalışır?
Bu tek astar, ön sıralama yapmadan yinelenen satırları metin girişinden kaldırır. Örneğin: $ cat >f q w e w r $ awk '!a[$0]++' <f q w e r $ İnternette bulduğum orijinal kod okundu: awk '!_[$0]++' _Perl'de olduğu gibi awk'de özel bir anlam kazandığım için bu daha da şaşırtıcıydı , …

1
GNU paralel vs & (arka plan demek) vs xargs -P
.shKullanarak bir komut dosyasında bir dizi görevi çalıştırmanın (varsa) farkı veya avantajı hakkında kafam karıştıGNU parallel Örneğin Ole Tange'nin cevabı: parallel ./pngout -s0 {} R{} ::: *.png Onları içine döngü demek yerine onları arka planda koyarak &. Örneğin frostschutz 'ın cevabı: #copied from the link for illustration for stuff in …

3
Her Linux tabanlı dağıtımda bulunan standart komutlar hangileridir?
Her Linux sisteminde standart komutların hangileri olduğunu bilmek istiyorum. Örneğin, bir debian / ubuntu / redhat / suse / arch / slackware vb. Alırsanız, aşağıdaki gibi komutları her zaman bulacaksınız: cd, mkdir, ls, echo, grep, sed, awk, ping vb. Bahsedilen komutlardan bazılarının kabuk yerleşik olduğunu biliyorum, ancak diğerleri değil ama …

2
Neden && 75 kat daha if… fi'den ve kodun daha açık hale getirildiğinden daha hızlı kullanılıyor?
Aşağıdaki çalışma koduna sahibim: largest_prime=1 for number_under_test in {1..100} do is_prime=true factors='' for ((divider = 2; divider < number_under_test-1; divider++)); do remainder=$(($number_under_test % $divider)) [ $remainder == 0 ] && [ is_prime ] && is_prime=false && factors+=$divider' ' done [ $is_prime == true ] && echo "${number_under_test} is prime!" || …


2
“$ {- # * i}”! = “$ -” ne anlama geliyor?
Gelen /etc/profileBunu görmek: for i in /etc/profile.d/*.sh ; do if [ -r "$i" ]; then if [ "${-#*i}" != "$-" ]; then . "$i" else . "$i" >/dev/null 2>&1 fi fi done Ne demek ${-#*i}istiyorsun Başlangıçta bir parametre genişletme tanımını bulamıyorum ${-.


3
chmod + sessiz mod + hataya rağmen çıkış kodunu 0 zorla
Chmod çalıştırmak ve komuttan hatayı yoksaymak mümkün mü Örnek (örnek olarak göstermek için file.txt dosyası mevcut değil) Yazarken chmod 777 file.txt Çıktıda hata alıyorum chmod: cannot access file.txt : no such file or directory Bu yüzden f komutuna aşağıdaki komutu ekliyorum: (vakayı göstermek için file.txt mevcut değil) chmod -f 777 …

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.