Mam następującą funkcję: bar() { echo $1:$2; } Wołam tę funkcję z innej funkcji foo. foosam nazywa się w następujący sposób: foo "This is" a test Chcę uzyskać następujące dane wyjściowe: This is:a Oznacza to, że barotrzymywane argumenty powinny być tymi samymi tokenami, które przekazuję foo. Jak foonależy to zrealizować? …
Niedawno dowiedziałem się o zegarku , ale mam problem z uruchomieniem go przy użyciu stosunkowo wyrafinowanych poleceń. Na przykład chciałbym prosić watcho uruchomienie następującego polecenia zshco trzy sekundy * : for x in `command_1 | grep keyword | cut -d' ' -f1`; do command_2 "word[word=number]" $x; done jak widać powyższa …
$ myvar="/path to/my directory" $ sudo bash -c "cd $myvar" W takim przypadku, jak mogę cytować, $myvaraby uniknąć dzielenia słów z powodu białych spacji w wartości myvar?
W skrypcie powłoki rozumiem, że "$@"rozszerzam się na argumenty skryptu, cytując je w razie potrzeby. Na przykład przekazuje argumenty skryptu do gcc: gcc -fPIC "$@" <<<Jednak podczas korzystania ze składni bash pass-to-stdin "@$"nie działa tak, jak bym tego oczekiwał. #!/bin/bash cat <<< "$@" Wywołanie skryptu jako ./test.sh foo "bar baz"daje …
Próbowałem wykonać nową linię za pomocą echoi próbowałem wykonać dwa polecenia: Pierwsze polecenie: echo $'Hello World\nThis is a new line' Odpowiedź: Hello World This is a new line Drugie polecenie: echo $"Hello World\nThis is a new line" Odpowiedź: Hello World\nThis is a new line Moje pytanie brzmi: jaka jest różnica …
Omawiając różnice między /usr/bin/timewbudowanym shellem (bash i zsh) time, ktoś wspomniał, że można go użyć \timejako skrótu /usr/bin/time. Najpierw wydawało się to miłym, niewinnym skrótem, ale potem pojawiły się pytania: Dlaczego też t\imedziała? Dlaczego \cdzmienia katalog, chociaż /usr/bin/cd¹ tego nie robi? Oczywiście \foonie jest to równoważne $(which foo). Pytanie brzmi …
Próbuję zapisać wiele wierszy w zmiennej bash, ale wydaje się, że to nie działa. Na przykład, jeśli wymienię /binjeden plik w wierszu i zapiszę go $LS, $LSprzekażę jako standardowe wejście wc, zawsze zwraca 1: $ ls -1 /bin | wc -l 134 $ LS=$(ls -1 /bin); wc -l <<< $LS …
Mam skrypt instalacyjny dla pudełka Vagrant, w którym mierzyłem pojedyncze kroki time. Teraz chciałbym warunkowo włączyć lub wyłączyć pomiary czasu. Na przykład wcześniej linia wyglądałaby tak: time (apt-get update > /tmp/last.log 2>&1) Teraz pomyślałem, że mogę po prostu zrobić coś takiego: MEASURE_TIME=true [[ $MEASURE_TIME = true ]] && TIME="time --format=%e" …
Uruchamianie kornshell i próba przejścia przez drzewo katalogów. Chcesz cd do podkatalogu o następującej nazwie: -3ab_&_-3dc.img Moje pytanie brzmi: JAK muszę uciec ze znaku handlowego w tym imieniu? Próbowałem różnych kombinacji podwójnych cudzysłowów i odwrotnych ukośników bez powodzenia.
Kiedy uruchamiam następujący skrypt z kilkoma argumentami, takimi jak arg1 arg2 arg3: #!/bin/bash zenity --entry --text="$@" zenity tworzy okno dialogowe z tym tekstem: „arg1”, podczas gdy oczekuję „arg1 arg2 arg3” Jeśli użyję zmiennej takiej jak poniższy skrypt, pokaże wszystkie argumenty dla tekstu wpisu. #!/bin/bash text="$@" zenity --entry --text="$text" Jaka jest …
Korzystam z tego małego skryptu testowego, który napisałem: #!/bin/bash TESTCASE=$@ testHarness <<runTest $TESTCASE runTest z linii poleceń: ./test.sh "1092$212" ale znak dolara jest usuwany. Jeśli mi się uda, to działa. Ale myślałem, że podwójne cytaty ochronią mnie przed koniecznością zrobienia tego. Czy ktoś może pomóc mi zrozumieć, co się dzieje …
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.