«shell-script» etiketlenmiş sorular

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

6
Ssh genel anahtarını birden çok Linux ana bilgisayarına kopyala
Merkezi sunucumuzdan .ssh / id_rsa.pub dosyasını birden çok sunucuya kopyalamaya çalışıyorum. Ben genellikle farklı sunuculara değişiklikleri göndermek için kullandığım aşağıdaki komut dosyası var. #!/bin/bash for ip in $(<IPs); do # Tell the remote server to start bash, but since its # standard input is not a TTY it will start …
14 shell-script  ssh 

1
Renk kodları stdout ve borudan dosya ve stdout'a nasıl çıkarılır
İçinde printfbazı tputkarışık olan bir program var ve çıktı bir dosya yanı sıra stdout için boru istiyorum. sedSenaryomda gereksiz bağımlılıklar istemediğim için kullanmayı tercih ederim . İşte şimdiye kadar aldığım şey. printf "\n$(tput setaf 6)| $(tput sgr0)$(tput setaf 7)Sourcing files...\033[m\n" | tee install.log Bu tek sorun benim günlük dosyası gibi …

2
Büyük olasılıkla boşluk içeren bir dosya adları listesiyle çalışmanın POSIX uyumlu yolu
Boşluk içeren dosya adları ile çalışmak için dizi kullanımını öneren Bash komut dosyası kılavuzlarını gördüm. DashAsBinSh ancak dizileri taşınabilir olmadığını önerir, bu yüzden boşluk içerebilecek dosya adları listeleri ile çalışmak için POSIX uyumlu bir yol arıyorum. Ben aşağıdaki örnek komut dosyasını değiştirmek için arıyorum echo foo/target/a.jar foo/target/b.jar bar/target/lol whitespace.jar İşte …

4
Ctrl-Z ve kill -STOP arasındaki fark nedir?
Kabuktan bir komut çalıştırdığımda ( makebüyük bir projede), işlemi durdurmak ve kabuğa geri dönmek için Ctrl-Z yazabilirim. Daha sonra, fgsürece devam etmek için koşabilirim . Bunu otomatikleştirmek için bir kabuk komut dosyası yazmaya çalışıyorum (özellikle, her birkaç saniyede bir CPU sıcaklığımı kontrol etmek ve çok ısınırsa işlemi durdurmak için, bilgisayarım …


4
değişken genişleme ile bash komut dosyasında find -exec
Bir bash komut dosyasında aşağıdakine benzer bir komut çalıştırmaya çalışıyorum. Tüm alt klasörleri aramalı $sourcedirve belirli bir türdeki tüm dosyaları kök düzeyine kopyalamalıdır $targetdir. #!/bin/bash # These are set as arguments to the script, not hard-coded sourcedir="/path/to/sourcedir" targetdir="/path/to/targetdir" find "$sourcedir" -type f -name "*.type" -exec sh -c 'cp "$1" "$2/`basename …


2
Bash for sh Ubuntu'da nasıl kullanılır
Kaynaklarını bir rpmdosya olarak içeren büyük bir program yüklüyorum . Hattına yapışmış #!/bin/sh SCITEGICPERLBIN=`dirname $0` SCITEGICPERLHOME=`dirname $SCITEGICPERLBIN` if [ $SCITEGICPERLHOME == "." ] Görünüşe göre, bu sözdizimi ile Red Hat Linux'ta shçalışın bash, ancak unexpected operatorUbuntu'da hata veriyor . Komut bashdosyası rpmpaketten geliyor gibi komut dosyasını değiştiremiyorum . rpmPaketi çıkarabilir …


4
Bash (veya diğer kabuk) komut dosyalarında boşluk sayısının önemli olduğu bazı durumlar nelerdir?
Bana boşlukların bashya da diğer kabuk metinlerinde önemli olduğu söylendi ve ne yaptığımı bilmiyorsam boşlukların varlığını değiştirmemeliydim. "Varoluşu değiştirmek" ile, ya boşluk olmayan iki karakter arasına boşluk eklemek ya da boşluk olmayan iki karakter arasına boşluk var="$val"koymak , örneğin , var ="$val"ya değiştirmek ya da tam tersi demek . Ben …

1
Koşul normal ifade hatası
string=123456 if [ $string == 123456 ]; then echo 123 fi Bu iyi çalışıyor, ancak == = = değiştirmek durumunda bu hatayı alıyorum: ./test: line 3: [: =~: binary operator expected

3
`Set -e` ile bash script`… &&… `komutunda durmuyor
Ben ilk hatayı bash komut dosyası durdurmakset -e için kullanın . Komutu &&: $ cat script set -e cd not_existing_dir && echo 123 echo "I'm running! =P" $ $ ./script ./script: line 2: cd: not_existing_dir: No such file or directory I'm running! =P $ ile karşılaştırıldığında: $ cat script set …



2
Belirli bir dosyadan daha eski dosyaları silme
Bir klasörden belirli bir dosyadan daha eski olan tüm dosyaları silmem gerekiyor. CentOS 7'de bash çalışıyor. Bunun için bir çözümüm var, ama bence daha zarif bir yol olmalı: reference_file=/my/reference/file get_modify_time() { stat $1 | grep -Po "Modify: \K[0-9- :]*" } pit=$(get_modify_time $reference_file) for f in /folder/0000* ; do [[ "$pit" …

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.