Czy wartość powinna zawierać cytaty, czy nie? W jakim języku piszesz (bash, POSIX shell, csh, python, perl?)
grawity
Witamy w SuperUser! Myślę, że grawity powiedziało to wszystko: tak jak jest, twoje pytanie nie dostarcza wystarczającej ilości informacji, na które można by odpowiedzieć. Proszę edytuj swoje pytanie aby dodać więcej informacji o tym, co próbujesz zrobić i co próbowałeś. Możesz odwołać się do Centrum pomocy po wskazówki dotyczące tego, co należy uwzględnić w pytaniu. Dziękuję Ci.
Nathan.Eilisha Shiraini
@grawity to linux bash
freitas
@ Nathan.EilishaShiraini zrobione
freitas
Odpowiedzi:
2
Tak, to możliwe. Nie musisz robić nic specjalnego, z wyjątkiem regularnej składni języka programowania.
Na przykład w Bashu użyłbyś:
export myvar="0 0 * * *"
W Pythonie:
os.environ["myvar"] = "0 0 * * *"
Lub jeśli wartość powinna rzeczywiście zawierać cytaty, jak w przykładzie:
Prawdopodobnie widzisz problemy z robieniem tego w sh / bash, ponieważ echo $myvar pojawia się, aby wyświetlić nieprawidłową wartość. Ale wartość przechowywana w zmiennej jest prawdopodobnie doskonale - problem polega na tym, jak próbujesz wydajność wartość.
W sh / bash ekspansja zmiennych odbywa się jako oddzielny krok przed rozszerzanie symboli wieloznacznych. Jeśli nazwa zmiennej nie jest cytowana, oryginalne polecenie echo $myvar najpierw rozszerzy się do poprawnej wartości echo 0 0 0 * * - i następnie wykonywane są czynności dzielenia słów i rozszerzania globu, zamieniając dane wyjściowe w listę nazw plików.
(Tak, może się to również zdarzyć w czasie przydzielania. Jednak znacznie częściej widziałem, że ludzie zapominają o tym w czasie produkcji; przypisanie wartości spacjami prawdopodobnie naturalnie przypomina ludziom o cytowaniu.)
Prawidłowy sposób wyświetlania zmiennej to echo "$myvar". (Do sprawdzać typ zmiennej i surowa zawartość, ma bash declare -p myvar.)
Odpowiedzi:
Tak, to możliwe. Nie musisz robić nic specjalnego, z wyjątkiem regularnej składni języka programowania.
Na przykład w Bashu użyłbyś:
W Pythonie:
Lub jeśli wartość powinna rzeczywiście zawierać cytaty, jak w przykładzie:
Prawdopodobnie widzisz problemy z robieniem tego w sh / bash, ponieważ
echo $myvar
pojawia się, aby wyświetlić nieprawidłową wartość. Ale wartość przechowywana w zmiennej jest prawdopodobnie doskonale - problem polega na tym, jak próbujesz wydajność wartość.W sh / bash ekspansja zmiennych odbywa się jako oddzielny krok przed rozszerzanie symboli wieloznacznych. Jeśli nazwa zmiennej nie jest cytowana, oryginalne polecenie
echo $myvar
najpierw rozszerzy się do poprawnej wartościecho 0 0 0 * *
- i następnie wykonywane są czynności dzielenia słów i rozszerzania globu, zamieniając dane wyjściowe w listę nazw plików.(Tak, może się to również zdarzyć w czasie przydzielania. Jednak znacznie częściej widziałem, że ludzie zapominają o tym w czasie produkcji; przypisanie wartości spacjami prawdopodobnie naturalnie przypomina ludziom o cytowaniu.)
Prawidłowy sposób wyświetlania zmiennej to
echo "$myvar"
. (Do sprawdzać typ zmiennej i surowa zawartość, ma bashdeclare -p myvar
.)źródło