【&&】
格式: command1 && command2
command1执行成功后才会执行command2
例如 mv /home/user1 /home/backup && rm -r /home/user1
上面的命令,只有成功将目录转移后才会执行删除命令
【||】
格式: command1 || command2
command1没有执行成功的情况下执行command2
例如
$ cp 1.txt 2.txt || echo "pre-command failed!"
cp: 1.txt no such file or directory
pre-command failed!
1.txt文件不存在,所以command1执行失败,command2被执行
【()】
格式: (command1; command2; command3)
这样可以执行一组命令,但是,这组命令会在子shell中执行
例如:
$export name=user1
$(export name=user2; echo $name)
user2
$echo $name
user1
可以看到,在子shell中,name=user2,当子shell退出后,name的值还是user1
如果不加括号的话, 会在当前shell执行这组命令,不会新开一个shell