1. # # comment character (#) echo "Acomment will follow."#comment here echo "Acomment will follow." #comment here // need a space echo $(( 2#101011 )) # base conversion, not a comment 2. , # comma operator (,): links together a series of arithmetic operations. All are evaluated, but only the last one is returned. let "t= ((a = 9, 15 / 3))" echo "a = $a, t = $t" for file in /{,usr}bin/ ... # blabla -> search file in /bin directory and /usr/bin directory
3. ${} # parameter substitution: (${}): may be used for variable concatenation: ourpath=${PWD}/test_path/ filename=quang ourfile=${filename}_file.txt echo "path1: $ourpath" echo "file1: $ourfile" ourpath2=$PWD/test_path2/ ourfile2=$filename_file2.txt echo "path2: $ourpath2" echo "file2: $ourfile2"
4. $'..' # quoted string expansion: ($'..') quote=$'\042' pound=$'\043' echo -e "quote: $quote\npound: $pound\n"
5. # Positional parameters (used when pass arguments from command line) echo "positional variables: $*" # all of the positional parameters echo "$@"
6. $? # exit status variable echo "Exit status variable: $?"
7. $$ # process ID variable echo "Process id: $$"
8. () # Group of commands (a=hello; echo "Sub shell: a = $a, b = $b") echo "Main cell: a = $a" # Array initialization arr=(e1 e2 e3) echo "arr(0) = ${arr[1]}"
9. {} # example using block of code: File=file1 { read line1 read line2 } < $File
10. [[..]] # test condition ([[..]]) file=/etc/passwd cur_file=$PWD/file2 if [ -e $file ]; then echo "Password file exists" fi if [ -e $file || -e cur_file ]; then # can not use || operator in this condition test. echo "Password file or $file2 exists" fi if [ $a -eq $b ]; then echo "compare a vs b using -eq operator" else echo "a != b" fi if [[ -f $file ]]; then # using [[..]], rather than [..] can prevent many logic errors in scripts, Ex. $$, ||, <, > operators echo "Password file exists" fi if [[ -f $file || -f $cur_file ]]; then # using [[..]], rather than [..] can prevent many logic errors in scripts, Ex. $$, ||, <, > operators echo "Password file or $file2 exists" fi # Note: following an if, neither the test command nor the test brackets ([], [[]]) are strictly neccessary, the if COMMAND struct returns the exit status of COMMAND # Similarly, a condition whithin test brackets may stand alone without an if. [$a -eq $b] echo "a==b"
11. # integer expansion a=3 b=7 echo $[$a + $b] echo $(($a + $b)) echo `expr $a + $b` echo $(expr $a + $b)
Không có nhận xét nào:
Đăng nhận xét