Najpierw nauczyłem się kodować w C
języku i używać
if ( code )
then
code
fi
utrudnia mi czytanie kodu (nie pytaj dlaczego). Czy istnieje substytut then
?
Coś takiego:
if ( code ) {
code
}
fi
Najpierw nauczyłem się kodować w C
języku i używać
if ( code )
then
code
fi
utrudnia mi czytanie kodu (nie pytaj dlaczego). Czy istnieje substytut then
?
Coś takiego:
if ( code ) {
code
}
fi
Odpowiedzi:
Nie ma substytutu, ale możesz użyć obu, jeśli naprawdę potrzebujesz aparatów ortodontycznych:
if true ; then {
something
} fi
Wykorzystuje to niepotrzebną jawnie zbrojoną grupę poleceń jako bryłę then
bloku. Wszelkie polecenia w nawiasach zostaną wykonane w bieżącej powłoce po then
uruchomieniu, dokładnie tak, jakby nawiasy nie były dostępne.
Naprawdę nie polecałbym tego stylu ogólnie ani kodu, który ktoś inny będzie musiał przeczytać, ale daje ci nawiasy klamrowe, które chcesz, i zrobi to samo, jeśli używasz edytora, który wymaga wzmocnionych bloków lub coś w tym stylu.
{ if { [[ a == aa ]];};then { echo yes;};else { echo no;}; fi;}
- w zasadzie, gdy używasz bash
wystarczająco dużo, standardowa składnia staje się wystarczająco znajoma, więc nie stanowi większego problemu.
Wydaje się, że patrząc na powłoce C ( csh
, tcsh
, etc ...). Należy pamiętać, że eksperci odradzają to przy programowaniu .
Nie jestem pewien, czy to, co uważasz za nieprzyjemne, then
jest następujące: Jeśli tak, rozważ użycie następującego stylu:
if condition; then
stuff
fi
Muszę przyznać, że nazwy instrukcji pisowni wstecz jak fi
for if
i esac
for case
(ale nie elihw
dla while
!) Są trochę dziwaczne. Ale to standardowa powłoka Bourne'a, najbardziej przenośna składnia powłoki, jakiej możesz użyć.
then
nieprzyjemny, po prostu mój edytor podświetli odpowiednie {}
pary, i jest to przydatne, gdy mam jakiś błąd, ponieważ wtedy mogę łatwo zobaczyć wszystkie moje if
stwierdzenia i sprawdzić, czy coś poszło nie tak .
vi
, %
które przeskakuje do pasującego nawiasu / nawiasu / nawiasu. Sympatyzuje. Tęsknię vi
„s %
komendy przy programowaniu w Pythonie.
Może to jest łatwiejsze dla oczu:
[ condition ] && {
# statement 1
# statment 2
# ...
}
Poza tym, przyzwyczaj się do tego. Użyj idiomów języka.
Poniżej jest blisko. I dziwne.
: if; { code; } && {
code
}
Osobiście nigdy nie lubiłem ...
if true; then
more;fi
... formuję siebie. Podoba mi się, gdy prowadzą słowa kontrolne . Zawsze wydawało mi się dziwne, że ...;then
w ogóle powstała dominująca forma.
if this && that
then do these things too
else i will probably get upset
fi
Jest to prawie całkowicie przeciwne do twojego żądania, ale jest to inny sposób, aby to zrobić. W fi
razie potrzeby możesz także przypiąć dowolne przekierowania do linii, które będą dotyczyć całego bloku.
if(...) {
, tj. Pozostawieniem otwierającego nawiasu klamrowego na tej samej linii, co if
w językach podobnych do C.
if
polecenia, nawet jeśli jest w następnym wierszu.
;
w takim przypadku musisz użyć separatora . Właśnie dlatego.
:
wbudowanej powłoki w ten sposób, aby wiersz kodu mógł być bajtowo bliższy składni C, nie należy w żaden sposób zachęcać.
Zawsze używam:
if (code); then
code;
fi
Prawdopodobnie nie dokładnie to, czego chcesz, ale jest trochę bardziej podobny do c.