/ / $ i% symboli w POSIX (unix) console [closed] - bash, macos, unix, posix, cat

Symbole $ i% w konsoli POSIX (unix) [zamknięte] - bash, macos, unix, posix, cat

To mój skrypt basha

Kiedy uruchamiam mój skrypt i wyjście cat-cat z tego skryptu.

Co to jest średnia% i $ znaków?

Odpowiedzi:

0 dla odpowiedzi № 1

cat -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.