本文共 4419 字,大约阅读时间需要 14 分钟。
笔者:YY同学
PS:尽量不要使用空格,除非语法规定必须使用!!
# Single line comment: ' Multi-line comment This is the first comment This is the second comment This is the third comment '
echo "Hello World!"
# global variable definitionmynum=1315 # numbermystr="hello world" # string# local variable definitionlocal mystr="abc"mystr+=123 # Final restul is "abc123"
# use $variable_name, {} is used to show more clear boundarymynum=123code="abc"mystr=${code} # grow mystr from abc to “abc123" echo "Before: ${mystr}"mystr+=${mynum}echo "After: ${mystr}" # define an arraymyarray=()myarray=("three" 1 "five" 0)# set valuemyarray[2]="eight"myarray[5]="!"# print different resultecho "${myarray[0]}" # show the first itemecho "${myarray[@]}" # get the whole array, most used in for loopecho "${#myarray[@]}" # get the amount of itemsecho "${!myarray[@]}" # get the index of items #!/bin/bash mylongstr="this is a long string" # initialization echo "My string: ${mylongstr}" # print stringecho "" echo "Number of characters in string: ${#mylongstr}" # print length of stringecho "" echo "Splitting my string like an array:" # split string by space and printfor word in ${mylongstr[@]}; do echo "${word}"doneecho "" #!/bin/bash a=2b=3 mysum=$((a+b)) # arithmetic operation must use double parenthesis!!echo "Sum of a=${a} and b=${b} is ${mysum}" #!/bin/bash A=1 if [ $((A)) -eq 0 ]; then echo "A equals to 0"elif [ $((A)) -gt 0 ]; then echo "A is greater than 0"else echo "A is smaller than 0"fi
#!/bin/bash mystr="This is an OS course" if [ -z "${mystr}" ]; then echo "Ops... the string is empty."else echo "The string is not empty."fi #!/bin/bash if [ -f example.txt ]; then echo "File example.txt exists."else echo "Ops... example.txt does not exist."fi
| Operator | Description |
|---|---|
| -eq | Returns true if two numbers are equivalent |
| -ne | Returns true if two numbers are not equivalent |
| -lt | Returns true if a number is less than another number |
| -gt | Returns true if a number is greater than another number |
| -le | Returns true if a number is less than or equal another number |
| -ge | Returns true if a number is greater than or equal another number |
| == | Returns true if two strings are equivalent |
| != | Returns true if two strings are not equivalent |
| ! | Returns true if the expression is false |
| -z | Check if a string is empty |
| -d | Check the existence of a directory |
| -f | Check if a file exists and is regular |
| -e | Check the existence of a file |
| -r | Check the existence of a file and read permission |
| -w | Check the existence of a file and write permission |
| -x | Check the existence of a file and execute permission |
#!/bin/bash A=("a" "b" "c") # print 1 to 10for i in { 1..10}; do echo "${i}"done # print a to cfor char in ${A[@]}; do echo "${char}"done #!/bin/bash A=0 # prints 0 to 9, with each number on a new line.while [ $((A)) -lt 10 ]; do echo $((A)) (( A++ ))done
#!/bin/bash echo "You called $0, with" if [ $# -eq 0 ]; then echo "no arguments..." exit 0fi counter=0for i in "$@"; do (( counter++ )) echo "Arg[${counter}]: ${i}"done #!/bin/bash # capture shell command. output=$(ls)echo ""echo "Output of ls: ${output}" # execute the command # where is the exit status? echo ""haha; echo "haha gives $?"; echo ""echo "hello_world"; echo "echo gives $?" #!/bin/bash # need a space between function name and '{' !function addition { result=$(($1 + $2))} function main { local a=1 local b=2 result= addition ${a} ${b} echo "${a}+${b}=${result}"} main # need a start point #!/bin/bash mystr="name.email.phone.remarks" # use Internal Field SeparatorIFS='.'for word in ${mystr[@]}; do echo $worddone# print: name email phone remarks# restore IFS IFS=" "$'\n'$'\t' #!/bin/bash # use awk librarywhile read line; do echo "${line}" | awk -F',' '{print $1" "$3}'done < data.csv 转载地址:http://nxwaz.baihongyu.com/