Каковы наиболее важные понятия / команды оболочки / терминала для начинающего пользователя? - PullRequest
0 голосов
/ 17 августа 2010

AL Хотя мне приходилось заниматься скриптами и командами оболочки, я все еще считаю себя новичком, и мне интересно услышать от других то, что они считают важными кусочками знаний.

Вот пример чего-то, что я считаю важным:

Я думаю, что понимание $ PATH крайне важно.Например, для запуска psql необходимо добавить папку PostgreSQL в переменную $ PATH, что легко может быть замечено новичками.

Ответы [ 4 ]

4 голосов
/ 17 августа 2010

Концепция труб.Тот факт, что вы можете легко перенаправить вывод и разделить сложную задачу на несколько простых, имеет решающее значение.

2 голосов
/ 17 августа 2010

Сделайте себе одолжение и получите эту книгу: Изучение Bash Shell

1 голос
/ 17 августа 2010

Если вы пишете сценарии оболочки, важная привычка - всегда заключать в кавычки переменные. То есть всегда пишите "$myvariable" (и аналогично "$ (mycommand)" ), никогда не вводите просто $myvariable или $(mycommand), если вы точно не понимаете, почему вы должны их опускать. (Опять же, вопрос не в том, «использовать ли я кавычки?», А в том, «почему я хочу опускать кавычки?»)

Причина в том, что оболочка делает неприятные вещи, когда вы оставляете подстановку переменной без кавычек. (Эти неприятные вещи называются разделением полей и расширением пути. В некоторых ситуациях они хороши, но почти никогда не являются результатом подстановки переменной или команды.)

Если вы пропустите кавычки, ваш скрипт может показаться работающим на первый взгляд. Это потому, что неприятные вещи случаются, только если значение переменной содержит некоторые специальные символы (пробел, \, *, ? и [). Такая скрытая ошибка имеет тенденцию обнаруживаться в тот день, когда вы создаете файл, имя которого содержит пробел, а ваш скрипт в конечном итоге удаляет ваше исходное дерево / thesis / baby pictures /...

Так, например, если у вас есть переменная $filename, которая содержит имя файла, который вы хотите передать команде, всегда пишите

mycommand "$filename"

, а не mycommand $filename.

1 голос
/ 17 августа 2010
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...