我有一个bash脚本,它像这样:
#!/bin/bash
if [ $1 = "--test" ] || [ $1 = "-t" ]; then
echo "Testing..."
testing="y"
else
testing="n"
echo "Not testing."
fi
因此,我想做的不仅是使用./script --test
或来运行它./script -t
,而且还不使用任何参数(只是./script
)来运行它,而且如果我使用当前代码来执行该输出,则输出看起来就是:
./script: line 3: [: =: unary operator expected
./script: line 3: [: =: unary operator expected
Not testing.
那么,我该如何编程以使其完全不带任何参数地运行else
而不会抛出错误呢?我究竟做错了什么?
1
您需要在支票两边加双括号。[[]]
—
Terrance
@Terrance 不需要它们,尽管如果以bash为目标,则应使用它们。
—
Ruslan