Pytania otagowane jako shell-script

Pytania dotyczące skryptów powłoki, plików wykonywalnych interpretowanych przez powłokę (bash, zsh itp.).

1
Co robi „set -” w tym punkcie wejścia Dockerfile?
Próbuję zrozumieć, co robi ten punkt wejścia Docker . Wydaje mi się, że jest to bardzo powszechny wzorzec podczas pisania Dockerfiles, ale moje umiejętności bash są ograniczone i nie mam pojęcia o wszystkich specjalnych symbolach bash kung fu. Poza tym trudno google wpisać „-”, „$!” itp. Jakie są one nazywane …
41 shell-script  set 


5
Zastąpić zmienne środowiskowe w pliku ich rzeczywistymi wartościami?
Czy istnieje prosty sposób na zamianę / ocenę zmiennych środowiskowych w pliku? Powiedzmy, że mam plik config.xmlzawierający: <property> <name>instanceId</name> <value>$INSTANCE_ID</value> </property> <property> <name>rootPath</name> <value>/services/$SERVICE_NAME</value> </property> ...itp. Chcę zastąpić $INSTANCE_IDw pliku wartością INSTANCE_IDzmiennej środowiskowej $SERVICE_NAMEwartością SERVICE_NAMEenv var. Nie będę z góry wiedział, które zmienne środowiskowe są potrzebne (a raczej nie chcę …


3
Sprawdź, czy ciąg zawiera podciąg
Mam kod file="JetConst_reco_allconst_4j2t.png" if [[ $file == *_gen_* ]]; then echo "True" else echo "False" fi Sprawdzam, czy filezawiera „gen”. Wynikiem jest „False”. Miły! Problem polega na tym, że podstawiam „gen” zmienną testseq: file="JetConst_reco_allconst_4j2t.png" testseq="gen" if [[ $file == *_$testseq_* ]]; then echo "True" else echo "False" fi Teraz wyjście …

2
Jak działa awk '! A [0 $] ++'?
Ten jednowarstwowy usuwa zduplikowane linie z wprowadzania tekstu bez wstępnego sortowania. Na przykład: $ cat >f q w e w r $ awk '!a[$0]++' <f q w e r $ Oryginalny kod znaleziony w Internecie brzmiał: awk '!_[$0]++' Było to dla mnie jeszcze bardziej kłopotliwe, ponieważ wziąłem _specjalne znaczenie w …


4
Komenda nvm nie jest dostępna w skrypcie bash
Próbuję zbudować skrypt, w którym nvmi ostatecznie zostanie zainstalowany węzeł. Zainstalowałem nvmz cURL. Widzę zmiany w pliku .profilelub .bashrc(oba działają), a podczas wpisywania nvmw wierszu poleceń bash pokazuje dostępne opcje itp. Więc NVM działa. Ręcznie mogę zainstalować węzeł, ale jak tylko wstawię nvmpolecenie do skryptu powłoki: nano test.sh #!/bin/bash nvm …

2
Łączenie argumentów bash w pojedynczy ciąg ze spacjami
Próbuję połączyć wszystkie argumenty z funkcją Bash w jeden ciąg znaków ze spacjami oddzielającymi każdy argument. Potrzebuję również, aby ciąg zawierał pojedyncze cudzysłowy wokół całego łańcucha. Oto co mam do tej pory ... $array=("$@") str="\'" for arg in "${array[@]}"; do let $str=$str+$arg+" " done let $str=$str+"\'" Oczywiście to nie działa, …


2
Dlaczego użycie && 75 razy szybciej niż gdyby ... fi i jak uczynić kod jaśniejszym
Mam następujący działający kod: largest_prime=1 for number_under_test in {1..100} do is_prime=true factors='' for ((divider = 2; divider < number_under_test-1; divider++)); do remainder=$(($number_under_test % $divider)) [ $remainder == 0 ] && [ is_prime ] && is_prime=false && factors+=$divider' ' done [ $is_prime == true ] && echo "${number_under_test} is prime!" || …


2
Co oznacza „$ {- # * i}”! = „$ -”?
W /etc/profilewidzę tak: for i in /etc/profile.d/*.sh ; do if [ -r "$i" ]; then if [ "${-#*i}" != "$-" ]; then . "$i" else . "$i" >/dev/null 2>&1 fi fi done Co ${-#*i}znaczy Nie mogę znaleźć definicji rozszerzania parametru rozpoczynającego się ${-.



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.