sh, tcsh

Краткая сводка по regexp: http://www.robelle.com/smugbook/regexpr.html

sh

Мануал по tcsh украден (частично) отсюда: tcsh in linux

Хороший мануал по sh здесь: block1-shell.pdf

sh include external

You can put definitions for commonly used functions inside your .profile so that they'll be available whenever you log in and you can use them at command prompt.

Alternatively, you can group the definitions in a file, say test.sh, and then execute the file in the current shell by typing:

. test.sh

This has the effect of causing any functions defined inside test.sh to be read in and defined to the current shell as follows:

 number_one
This is the first function speaking...
This is now the second function speaking...

To remove the definition of a function from the shell, you use the unset command with the .f option. This is the same command you use to remove the definition of a variable to the shell.

unset .f function_name

Более полный мануал по sh (но на английском) здесь: http://www.grymoire.com/Unix/Sh.html

tcsh (C Shell)

tcsh отличается от sh, из-за чего возникают сложности

Агрументы скрипта tcsh

Агрументы скрипта могут быть получены скриптом по конструкции

set a=($argv)

где a – числовой ряд

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

set a=($argv[1])
set b=($argv[2])

tcsh variables

Код Описание
 @ x= 1 
Задает значение переменной x. Эквивалентно set x=1
 set x=1 
Задает значение переменной x как одиночного элемента. Последующие значения отбрасываются
 set x=(1) 
Задает значение переменной x как ряда (из одного элемента).
 @ x+= 1 
 set x=(`expr $x + 1`) 
Увеличивает значение переменной x на 1.
 set array = (1,2,3) 
Задает значение переменной как единый текст “1,2,3”
 set array = (1 2 3) 
Задает переменную как ряд данных
 echo $x
1 2 3
Когда переменная задана как ряд, может быть показан весь ряд:
 echo $x[1]
1 
Или значение его элемента (номер в квадратных скобках):
 set array = (`ls`)
Переменная может быть выставлена как ряд, полученный в результате некоей операции
 seq 1 2 9 
Перечислит все нечетные от 1 до 9 (аргументы: начальное значение, инкремент, конечное значение)
 seq 9
Равносильно seq 1 1 9 – пересчитает от 1 до 9

tcsh LOOPS

foreach

На смену оператору for приходит оператор foreach

Форма Описание
foreach x (1 2 3)
  echo $x
end
Выполняет операции echo с каждым элементом ряда
 foreach x (*.txt)

Эквивалентно

 foreach x (`ls | grep .txt`) 
Выполнит действие со всеми файлами с расширением .txt в текущей директории
 foreach x (`seq 9`) 
Будет выполнять действия с цифрами от 1 до 9

while

Немного иначе записываются аргументы оператора. Они:

Оператор Состояние
> Больше
< Меньше
=> Больше или равно
<= Меньше или равно
== Равно
!= Не равно
=~ Одинаково (позволяет *)
!~ Не одинаково (позволяет *)
&& И
|| ИЛИ
! НЕ

Общий вид:

while (condition)
   commands
end

Пример:

set number=1
while ( $number <= 9)
   echo $number
   set number=(`expr $number + 1`)
end

if

Общая форма:

if (condition) then
   commands
else
   commands
endif
unix/tcsh.txt · Last modified: 2015/10/02 13:15 by rybario
About this template
CC Attribution-Share Alike 4.0 International
Powered by PHP Driven by DokuWiki Recent changes RSS feed Valid CSS Valid XHTML 1.0 Valid HTML5