Это старая версия документа!


Bash

$$ pid текущего shell (самого процесса-сценария)
$! pid последнего процесса в фоновом режиме
$? код возврата последнего процесса (функции или скрипта)
$x где x — номер параметра, переданного скрипту ($1, $2 и т. д., $0 — последний запущенный скрипт)
$# количество аргументов командной строки
$* все аргументы в виде одной строки (слова)
$@ то же самое, что и $*, но при этом каждый параметр представлен как отдельная строка (слово)
$- список флагов, переданных сценарию
$_ содержит последний аргумент предыдущей команды
  • du -h 1 > ./log 2>&1
    • 1 - Поток вывода
    • 2 - Поток ошибок
    • &1 - обозначает файловый дескриптор 1
array=( one two three )
files=( "/etc/passwd" "/etc/group" "/etc/hosts" )
limits=( 10, 20, 26, 39, 48)
case "$1" in
start)
esac

Необходимо добавить параметр -x Пример:

# bash -x script.sh
function f1{
 
	# params $1
	echo $1
 
}
 
f1 A
for fn in `cat filenames.txt`; do
    echo "the next file is $fn"
    cat $fn
done
while read filename
do
    echo "Printing: $filename"
    cat "$filename"
done < filenames.txt
for fn in cat filenames.txt; do cat "$fn"; done
for i in "${arrayName[@]}"
do
   :
   # do whatever on $i
done

Индексы

  • [@] - Ссылка на копию массива в переменной $1
  • [*] - Строка
  • [n]
  • var=(1 2 3 4)
  • echo ${var[@]}

if

if что-то
then
 # делать тот-то
else
 # делать тот-то
fi
if что-то; then
 # делать тот-то
else
 # делать тот-то
fi

test

Ссылки

Видео уроки