Mam program, który używa printfniektórych tputzmieszanych i chciałbym przesłać dane wyjściowe do standardowego wyjścia, a także do pliku. Wolę używać, sedponieważ nie chcę żadnych niepotrzebnych zależności od mojego skryptu. Oto co mam do tej pory. printf "\n$(tput setaf 6)| $(tput sgr0)$(tput setaf 7)Sourcing files...\033[m\n" | tee install.log Jedynym problemem jest …
Widziałem przewodniki skryptów Bash sugerujące użycie tablicy do pracy z nazwami plików zawierającymi białe znaki. DashAsBinSh sugeruje jednak, że tablice nie są przenośne, dlatego szukam zgodnego z POSIX sposobu pracy z listami nazw plików, które mogą zawierać spacje. Chcę zmodyfikować poniższy przykładowy skrypt, aby to zrobił echo foo/target/a.jar foo/target/b.jar bar/target/lol …
Kiedy uruchamiam polecenie ( makew dużym projekcie) z powłoki, mogę wpisać Ctrl-Z, aby zatrzymać proces i powrócić do powłoki. Następnie mogę uruchomić, fgaby kontynuować proces. Próbuję napisać skrypt powłoki, aby to zautomatyzować (w szczególności, aby sprawdzać temperaturę mojego procesora co kilka sekund i zatrzymać proces, jeśli robi się zbyt gorąco, …
Czy ktoś może wyjaśnić, dlaczego średnik jest niezbędny, LANGaby był postrzegany jako zaktualizowany przez bash? Nie działa: > LANG=Ja_JP bash -c "echo $LANG" en_US Pracuje: > LANG=Ja_JP ; bash -c "echo $LANG" Ja_JP Pracuję zarówno z bash 4.1.10 na Linuksie, jak i tą samą wersją pod cygwin
Próbuję uruchomić polecenie podobne do poniższego w skrypcie bash. Powinien przeszukiwać wszystkie podfoldery $sourcediri kopiować wszystkie pliki określonego typu na poziom główny $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 "$1"`"' …
Jak napisać skrypt do przenoszenia tylko 20 najstarszych plików z jednego folderu do drugiego? Czy istnieje sposób na pobranie najstarszych plików w folderze?
Instaluję ogromny program, który ma swoje zasoby w postaci rpmpliku. Utknął na linii #!/bin/sh SCITEGICPERLBIN=`dirname $0` SCITEGICPERLHOME=`dirname $SCITEGICPERLBIN` if [ $SCITEGICPERLHOME == "." ] Widocznie shpracować bashw systemie Red Hat Linux z tej składni, ale daje błąd unexpected operatorw Ubuntu. Nie mogę zmienić skryptu na, bashponieważ skrypt pochodzi z rpmpakietu. …
Kiedy robisz a tail -f error.log, jak wstawić programowo podział linii po tym, jak nic nie zostało dodane do pliku przez 3 sekundy? (oczywiście po dodaniu jednego podziału wiersza nie należy dodawać żadnego innego podziału wiersza, dopóki inne wiersze tekstu nie zostaną dodane do pliku dziennika) Na przykład te linie …
Powiedziano mi, że spacje są ważne w bashinnych skryptach powłoki i nie powinienem zmieniać ich istnienia, chyba że wiem, co robię. Przez „zmianę istnienia” rozumiem albo wstawienie spacji między dwoma znakami spacji lub usunięcie spacji między dwoma znakami spacji, np. Zmiana var="$val"na var ="$val"lub odwrotnie. Chcę zapytać Czy są jakieś …
string=123456 if [ $string == 123456 ]; then echo 123 fi Działa to dobrze, ale jeśli zmienię == na = ~ otrzymuję ten błąd: ./test: line 3: [: =~: binary operator expected
Używam set -edo zatrzymania skryptu bash przy pierwszym błędzie . Wszystko działa OK, chyba że użyję polecenia z &&: $ 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 $ …
Mam skrypt, który generuje dane wyjściowe. Chcę sprawdzić to wyjście dla dowolnego adresu IP, takiego jak 159.143.23.12 134.12.178.131 124.143.12.132 if (IPs are found in <file>) then // bunch of actions // else // bunch of actions // To fgrepdobry pomysł? Mam dostępne bash.
To jest bardzo prosty skrypt #!/usr/local/bin/bash set -e if [ "$#" -lt 1 ] then echo "Please insert at least one argument" exit else echo -e "\c" fi if [ -h "$1" ] then echo "$1 is a symbolic link" else echo "$1 in not a symbolic link" fi ~ …
Muszę usunąć z folderu wszystkie pliki starsze niż określony plik. Uruchamianie basha na CentOS 7. Mam na to rozwiązanie, ale myślę, że powinien istnieć bardziej elegancki sposób: 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" > …
Chcę dostosować funkcjonalność cdpolecenia zgodnie z moimi potrzebami. Zdefiniowałem następującą funkcję - function cd () { cd "$@" && pushd "$@"; } Celem tej funkcji jest automatyczne wypychanie katalogu na stos, dzięki czemu oszczędzam wysiłku, aby za pushd .każdym razem ręcznie pisać . Jednak powyższa funkcja jest funkcją nieskończenie rekurencyjną, …
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.