Kiedy uruchamiam mój skrypt i wyjście cat-cat z tego skryptu.
Co to jest średnia% i $ znaków?
Odpowiedzi:
0 dla odpowiedzi № 1cat -e
wypisze "niedrukowalne znaki", takie jak nowe wskaźniki linii
$
w tym przypadku wskazuje na obecność a n
postać, która jest EOL
(koniec linii).
The %
znak pojawia się w pewnych środowiskach powłoki, kiedy opuściłeś strumień bez obecności znaku nowej linii na końcu (efekt twojego tr -d "n"
). Nie jest technicznie częścią wyjścia, a raczej wskaźnikiem wstawionym po wyrenderowaniu danych wyjściowych do terminala.
tj. można rozebrać $
z wyświetlanego wyniku przez przepuszczenie go przez tr:
$ echo "hellonhello" | cat -e | tr -d "$"
hello
hello
ale nie można usunąć% z wyświetlanego wyniku, wykonując to samo:
$ echo "hellonhello" | tr -d "n" | cat -e | tr -d "%"
hellohello%
0 dla odpowiedzi nr 2
The $
i %
są domyślnymi symbolami zachęty używanymi przez konwencję. Pojawiają się na końcu monitu. Twoje dane wyjściowe nie mają znaku końca wiersza, więc znak zachęty pojawia się na końcu wiersza.
$
wskazuje powłokę wyprowadzoną z powłoki Bourne'a, która zawiera powłoki POSIX, Korn i Bash. Te powłoki używają #
po zalogowaniu się z identyfikatorem użytkownika zero (zwykle root).
The %
wskazuje powłokę wyprowadzoną z powłoki c, która obejmuje csh i tcsh.
Więc jesteś prawdopodobnie działa pod powłoką c, a następnie uruchamiasz skrypt POSIX lub Bourne-shell (twój #!
pokazy linii sh
), więc bash
tag jest mylący. Prawdopodobnie ponieważ możesz ustawić monit, zmienną PS1
, być cokolwiek chcesz, przesłonić konwencje opisane powyżej.
Aby zobaczyć, z której powłoki korzystasz, po prostu wpisz ps | grep $$
Nie widzę żadnego $
podpisuje wyjście, które pokazujesz, wyciąg z man cat
:
-e Wyświetla niedrukowalne znaki (patrz opcja -v) i wyświetla znak dolara (`$") na końcu każdej linii.