Bash -o运算符

时间:2014-10-15 19:30:41

标签: bash

我正在尝试使用bash脚本删除用户注销时的目录。这就是我所拥有的:

#!/bin/bash

if [[ $1 == "user1" -o $1 == "user2" -o $1 == "user3" ]]; then
      exit 0

rm -r /Users/$1
fi

每次我以交互方式运行此脚本时,都会出现语法错误。 “-o”附近出现意外表达。我有点难过。该脚本的目标是删除除user1,user2和user3之外的所有目录。代码有什么问题?

1 个答案:

答案 0 :(得分:9)

条件表达式命令不支持

-o。请改用||

if [[ $1 == "user1" || $1 == "user2" || $1 == "user3" ]]; then

(另外,建议不要将-o用于test / [命令。而不是

if [ "$1" = "user1" -o "$1" = "user2" ]; then

建议的顺序是

if [ "$1" = "user1" ] || [ "$1" = "user2" ]; then

即,对test加入的[ / ||使用两个单独的来电。