Szukam do kodu wyświetlane poniżej i sprawdza dane wejściowe jeśli argumenty wiersz / kolumna zacząć albo -rlub -c. Co ${1:0:2}znaczy w tym kontekście? rowArgName="-r" colArgName="-c" if [ "${1:0:2}" != $rowArgName ] && [ "${1:0:2}" != $colArgName ] then echo $correctCmdMsg >&2 exit 1 fi
Próbuję ls jakieś pliki ze wzorem w katalogu. Chcę tylko zeskanować pierwszy poziom, a nie rekurencyjny. Mój skrypt: for i in $(ls $INCOMINGDIR/*$BUSSINESSDATE*) do echo $i; done Powyższe polecenie skanuje rekurencyjnie. Jak to zrobić, aby skanować tylko katalog pierwszego poziomu?
Chciałbym się upewnić, że w pewnym momencie skryptu, po sourcewczytaniu pliku konfiguracyjnego, ustawionych jest kilka zmiennych, a jeśli tak nie jest, zatrzymanie wykonywania, informowanie użytkownika o brakującej zmiennej. próbowałem for var in $one $two $three ; do ... ale jeśli na przykład $twonie jest ustawiony, pętla nigdy nie zostanie wykonana …
Wiem, że mogę czekać na spełnienie warunku bash, wykonując: while true; do test_condition && break sleep 1 done Ale tworzy 1 podproces przy każdej iteracji (uśpieniu). Mogłem ich uniknąć, wykonując: while true; do test_condition && break done Ale zużywa dużo procesora (zajęte oczekiwanie). Aby uniknąć podprocesów i zajętego czekaniem, wymyśliłem …
Próbuję dodać nagłówek licencji do wszystkich plików nagłówka i plików źródłowych w katalogu projektu za pomocą pętli for. To nie działa, czy używasz innego podejścia sed?
Próbuję napisać wszystkie moje shskrypty startowe / env do pracy z tak dużą ilością OSUSZANIA i jak najwięcej: „działa na każdym * nix, w którym go klonuję”, jak to możliwe. Oznacza to upewnienie się, że jeśli spróbuję uruchomić kod, którego tam nie ma, kod nie działa płynnie. W tym celu …
Mam folder z wieloma plikami (xyz1, xyz2, aż do xyz5025) i muszę uruchomić skrypt na każdym z nich, otrzymując xyz1.faa, xyz2.faa i tak dalej jako dane wyjściowe. Polecenie dla pojedynczego pliku to: ./transeq xyz1 xyz1.faa -table 11 Czy istnieje sposób, aby to zrobić automatycznie? Może kombinacja for-do?
Zawsze jestem bardzo niezdecydowany, żeby się z $IFStym pogodzić, ponieważ jest to globalny problem. Ale często sprawia, że ładowanie ciągów do tablicy bash jest przyjemne i zwięzłe, a dla skryptów bash trudno jest uzyskać zwięzłość. Myślę więc, że może być lepsze niż nic, jeśli spróbuję „zapisać” początkową zawartość $IFSinnej zmiennej, …
Załóżmy, że mam trzy (lub więcej) skrypty bash: script1.sh, script2.sh, i script3.sh. Chciałbym wywołać wszystkie trzy skrypty i uruchomić je równolegle . Jednym ze sposobów jest wykonanie następujących poleceń: nohup bash script1.sh & nohup bash script2.sh & nohup bash script3.sh & (Ogólnie rzecz biorąc, skrypty mogą potrwać kilka godzin lub …
Mam skrypt bash z różnymi instrukcjami if opartymi na argumentach wiersza poleceń, które przekazuję podczas jego wywoływania. Posiadanie pewnego rodzaju danych wyjściowych dotyczących uruchamianych poleceń jest pomocne w potwierdzeniu przepływu przez wszystkie instrukcje if, ale moje obecne rozwiązanie daje mi zbyt wiele informacji. Używanie set -vw skrypcie było nieco pomocne …
Jaki jest najlepszy sposób tłumienia wyjścia (stdout i stderr), chyba że program zakończy działanie z niezerowym kodem? Myślę: quiet_success() { file=$(mktemp) if ! "$@" > "$file" 2>&1; then cat "$file" fi rm -f "$file" } I biegnij, quiet_success my_long_noisy_script.shale nie jestem pewien, czy jest lepszy sposób. Wydaje mi się, że …
Jak znaleźć maksymalną wartość z kolumny 1 i powtórzyć odpowiednią lokalizację ścieżki z pliku zawierającego n liczby rekordów. $ cat version.log 112030 /opt/oracle/app/oracle/product/11.2.0 121010 /opt/oracle/app/oracle/product/12.1.0 Oczekiwany wynik: /opt/oracle/app/oracle/product/12.1.0
Używamy plików cookie i innych technologii śledzenia w celu poprawy komfortu przeglądania naszej witryny, aby wyświetlać spersonalizowane treści i ukierunkowane reklamy, analizować ruch w naszej witrynie, i zrozumieć, skąd pochodzą nasi goście.
Kontynuując, wyrażasz zgodę na korzystanie z plików cookie i innych technologii śledzenia oraz potwierdzasz, że masz co najmniej 16 lat lub zgodę rodzica lub opiekuna.