Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
BASH конспект(2).doc
Скачиваний:
1
Добавлен:
01.07.2025
Размер:
163 Кб
Скачать
☆

1.2 Что значит "{некоторое странное название команды}"

cat = "catenate"

awk = "Aho, Weinberger and Kernighan"

grep = "Global Regular Expression Print" (аналог команды ed "g/re/p")

fgrep = "Fixed GREP"; fgrep searches for fixed strings only.

Perl = "Pathologically Eclectic Rubbish Lister"

Unics (Unix) = "UNiplexed Information and Computing System"

gecos = "General Electric Comprehensive Operating Supervisor"

biff = "BIFF"

“... This command, which turns on asynchronous mail notification, was actually named after a dog at Berkeley.”

rc (напр. ".bashrc" или "/etc/rc") = "RunCom"

 

2.5 Как считать со стандартного ввода один символ

Используя команды dd и stty:

stty -icanon

echo -n "Enter a character: "

readchar=`dd if=/dev/tty bs=1 count=1 2>/dev/null`

echo "Thank you for typing a $readchar ."

stty icanon

Про dd см. в документации к SHELL-UTILS

2.6 Как переименовать все файлы *.Html в *.Htm

мой ответ:

find -name '*.html' | while read a; do mv $a ${a%.html}.htm; done

2.12 Как обратиться к параметру номер I , если I не константа, а переменная?

Можно подумать, что это легко и можно написать ${$i}, но это не сработает, и вам напишут bad substitution.

    • Примечание. Начиная с bash 2.0 можно использовать конструкцию ${!i}.

Зато можно вот так:

eval "param=\${$i}"

echo "Parameter number $i is $param"

А вот программа, которая выводит все свои параметры в обратном порядке.

i=$#

while let i

do

eval "echo \${$i}"

i=$[i-1]

done

BASH FAQ

Источник: bash.faq из comp.unix.shell

Последняя версия bash

Самая последняя версия bash -- 2.01. Она почти не отличается от 2.0, зато довольно сильно отличается от версии 1.14.7, предшествующей 2.0.

Новые возможности по сравнению с 1.14.7:

    • зарезервированное слово time для вычисления времени выполнения программы

    • одномерные массивы

    • новые виды экспансии: ${param:length:offset}, ${param/pat/replace-to}

    • новые команды disown и shopt

    • новые виды кавычек для locale-specific translations, обозначения $'...' и $"...".

    • ссылки на переменные: {$! param_name } будет вычислена переменная с именем, хранящимся в $ param_name (в старом для этого нужен eval)

Чем bash отличается от sh

В SH отсутствуют следующие возможности BASH:

    • новые возможности BASH 2.0 (см. выше)

    • long named options (для вызова bash)

    • отрицание !

    • слово function (по слухам, в некоторых реализациях sh это слово есть)

    • команда select

    • обращение к параметрам больше девятого ${10}

    • длина параметра ${#param}, "редактирование" ${var#str}, ${var%str}

    • нет переменных: BASH, BASH_VERSION, BASH_VERSINFO, UID, EUID, REPLY , TIMEFORMAT, PPID, PWD , OLDPWD, SHLVL, RANDOM , SECONDS, LINENO, HISTCMD, HOSTTYPE , OSTYPE , MACHTYPE, HOSTNAME , ENV , PS3 , PS4 , DIRSTACK, PIPESTATUS, HISTSIZE, HISTFILE, HISTFILESIZE, HISTCONTROL, HISTIGNORE, GLOBIGNORE, PROMPT_COMMAND, FCEDIT, FIGNORE, IGNOREEOF, INPUTRC, SHELLOPTS, OPTERR , HOSTFILE, TMOUT, histchars, auto_resume

    • перенаправление <>, &>, >|

    • echo -e (в некоторых реализациях имеется), hash -p (то же), type -apt,

    • test -o optname/s1 == s2/s1 < s2/s1 > s2/-nt/-ot/-ef/-O/-G/-S

    • разные конфигурационные файлы для интерактивного или неинтерактивного сеанса: ~/. bashrc и $ENV соотв .

    • функции и переменные с одинаковыми именами

    • { }- экспансия: {префиксы}корень{суффиксы}

    • обозначение ~ (имеется в некоторых реализациях)

    • let (в некоторых реализациях есть команда с таким же именем, но отличающимся поведением)

    • $((expr)) -- только $[] или вообще нет ?

    • вместо $(...) только `...`

    • подстановки процессов >(cmd) <(cmd)

    • alias и unalias (имеются в некоторых реализациях)

    • local (в некоторых реализациях есть команда с таким же именем, но отличающимся поведением)

    • история команд (в некоторых реализациях)

    • команды command, builtin, declare, typeset, dirs, enable, help, logout, popd, pushd

    • экспортируемые функции

    • filename generation when using output redirection (command >a*)

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]