本文共 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/