summaryrefslogtreecommitdiffstats
path: root/shell-workshop/shell.txt
diff options
context:
space:
mode:
Diffstat (limited to 'shell-workshop/shell.txt')
-rw-r--r--shell-workshop/shell.txt131
1 files changed, 0 insertions, 131 deletions
diff --git a/shell-workshop/shell.txt b/shell-workshop/shell.txt
deleted file mode 100644
index d98d249..0000000
--- a/shell-workshop/shell.txt
+++ /dev/null
@@ -1,131 +0,0 @@
-introduce the shell interpreter
- POSIX.1-2008 XCU 2.1
- shell reads input from:
- a specified file,
- '-c' option argument, or
- stdin (interactive mode)
- shell splits input lines into tokens and parses them
- shell expands words
- shell performs I/O redirection
- shell executes functions, built-in commands, files, etc.
-parameters and variables
- positional parameters
- POSIX.1-2008 XCU 2.5.1
- decimal numbers greater than 0, e.g. $1 and $2
- multiple-digit numbers should be enclosed in braces
- assigned with:
- shell arguments when shell starts
- function arguments when a function is called
- can be reassigned using 'set' built-in command
- special parameters
- POSIX.1-2008 XCU 2.5.2
- @
- all positional parameters
- *
- all positional parameters
- #
- number of positional parameters
- ?
- exit status of most recent command pipeline
- -
- current option flags
- $
- process ID of shell
- !
- process ID of most recent background command
- 0
- name of shell or shell script
- shell variables
- POSIX.1-2008 XCU 2.5.3
- HOME
- pathname of user's home directory
- IFS
- delimiters for field splitting
- default: <space> <tab> <newline>
- LINENO
- line number of current script, if any
- PATH
- list of paths which should be searched for commands
- PS1
- prompt value to be expanded and written to standard error
- default value: "$ "
- PWD
- absolute pathname of the current working directory
-word expansions
- tilde expansion
- POSIX.1-2008 XCU 2.6.1
- tilde-prefix: unquoted tilde at the beginning of a word
- followed by all unquoted characters until first unquoted slash
- login name is all characters in tilde-prefix following tilde
- if login name is empty (tilde-prefix == "~")
- expanded to value of HOME
- else
- expanded to home directory associated with login name
- parameter expansion
- POSIX.1-2008 XCU 2.6.2
- ${expression} or $expression
- expression:
- parameter
- parameter:-word
- parameter:=word
- parameter:?word or parameter:?
- parameter:+word
- #parameter
- parameter%word
- parameter%%word
- parameter#word
- parameter##word
- command substitution
- POSIX.1-2008 XCU 2.6.3
- $(command)
- or
- `command`
- expanding:
- shell executes command in a subshell
- shell replaces substitution with stdout of the command
- newlines within command are allowed
- nesting
- `command1 \`command2 foo\` bar`
- $(command1 $(command2 foo) bar)
- arithmetic expansion
- POSIX.1-2008 XCU 2.6.4
- $((expression))
- expanding:
- shell processes expression
- shell replaces substitution with value of the expression
- arithmetic:
- signed long integer precision
- decimal, octal, and hexadecimal constants
- e.g. 42, 052, 0x2A
- operators:
- ( ), unary +, unary -, +, -, *, /, %
- ~, !, <<, >>, &, ^, |
- <, <=, >, >= ==, !=, &&, ||, expr ? expr : expr
- =, +=, -=, *=, /=, %=, <<=, >>=, &= ^=, |=
- shell variables
- if x has an integer value, then the following are equivalent:
- $((x + 1)) $(($x + 1))
- field splitting
- POSIX.1-2008 XCU 2.6.5
- IFS is a set of delimiters, at which unquoted fields are split
- pathname expansion
- POSIX.1-2008 XCU 2.6.6
- POSIX.1-2008 XCU 2.13
- performed unless 'set -f' was run
- patterns
- ? matches any single character
- * matches multiple (0 or more) characters
- [ opens RE bracket expansion
- if pattern does not match any existing files
- pattern string is left unchanged
-redirection
- input redirection
- [n]<word
- n: optional file descriptor number (default: 0, stdin)
- word: name of file
- output redirection
- [n]>word
- [n]>|word
- n default: 1, stdout
- appending redirected output
- [n]>>word