Piszę skrypt bash, który musi wykonać jakąś operację na argumencie, który jest ścieżką Ścieżka może odpowiadać istniejącemu plikowi w systemie użytkownika lub nie, więc chciałbym sprawdzić, czy argument wygląda na jego twarzy pasuje do formatu ścieżki, w sposób, który nie polega na testowaniu niektórych istniejących plików.
Mam nadzieję, że jest na to sposób bez wyrażenia regularnego lub innego dopasowania wzorca; Bałbym się pominąć jakąś dziwaczną skrzynkę - idealnie chciałbym wiedzieć, czy jest jakieś wbudowane bash lub coś takiego, co zrobi dla mnie ten test.
Odpowiedzi:
Jedyną postacią, która nie jest dozwolona na ścieżce, jest NUL, dlatego nie ma potrzeby dostosowywania się do naturalnych ograniczeń. Jeśli chcesz sztucznie ograniczyć zestaw prawidłowych znaków (powiedzmy, jeśli używasz systemu plików niezgodnego z POSIX), musisz sprawdzić poprawność znaków na sztywno.
źródło