Pytania otagowane jako quoting

Ciągi są zwykle rozdzielane cudzysłowami, co podnosi problem radzenia sobie z ciągami zawierającymi cudzysłowy.

2
Przekaż argumenty, aby działały dokładnie tak, jak są
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ć? …




4
Czy skrypt powłoki może wydrukować swój argument cytowany tak, jak napisałbyś go w wierszu poleceń powłoki?
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 …



1
Co właściwie robi `\ time`,` t \ ime` i `\ cd`? (zabawa z ukośnikami w muszlach)
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 …

3
Nowa linia w zmiennych bash
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 …
9 bash  shell  quoting 

2
Jak mogę warunkowo przekazać podpowłokę przez „czas”?
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" …
9 bash  shell  quoting  time 



2
Dlaczego --text = „$ @” przekazuje tylko pierwsze słowo?
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 …
9 bash  shell  quoting 

1
Interpolacja znaku dolara w cudzysłowie w bash
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 …
9 bash  shell  quoting 
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.