if [ -d "$LINK_OR_DIR" ]; then
if [ -L "$LINK_OR_DIR" ]; then
# It is a symlink!
# Symbolic link specific commands go here.
rm "$LINK_OR_DIR"
else
# It's a directory!
# Directory command goes here.
rmdir "$LINK_OR_DIR"
fi
fi
#第一种
foo="Hello"
foo="${foo} World"
echo "${foo}"
> Hello World
#第二种
a='Hello'
b='World'
c="${a} ${b}"
echo "${c}"
> Hello World
string='My long string'
if [[ $string == *"My long"* ]]; then
echo "It's there!"
fi
#-r表示递归复制整个目录
#foo后不加/,类似于windows中的把foo整个目录拷贝
scp -r user@your.server.example.com:/path/to/foo /home/user/Desktop/
#foo后加/,只把foo中的内容拷贝
scp -r user@your.server.example.com:/path/to/foo/ /home/user/Desktop/
2>&1的意思1等同于stdout
2等同于stderr
所以2>&1等同于stderr to stdout(把标准错误输出到标准输出)
因为>是重定向符号,其后的可以是文件名,为了防止误会,所以命令中添加了&符号。&符号就是告诉计算机,1和2就是标志stdout和stderr的意思,而不是其他的意思
#!/bin/bash
IN="bla@some.com;john@home.com"
#IFS是关键字,表示分隔符
IFS=';' read -ra ADDR <<< "$IN" #把IN的内容提取出来赋值给数组ADDR
for i in "${ADDR[@]}"; do #循环数组ADDR ;@符号,表示所有的意思
echo "$i"
done