string=123456
if [ $string == 123456 ]; then
echo 123
fi
Run Code Online (Sandbox Code Playgroud)
这工作正常,但如果我将 == 更改为 =~ 我会收到此错误:
./test: line 3: [: =~: binary operator expected
Run Code Online (Sandbox Code Playgroud) 我想做这样的事情:
echo myserver:~/dir/2/ | rsync -r HERE /local/path/
Run Code Online (Sandbox Code Playgroud)
我希望输出重定向到命令中的指定位置。回声的东西去“这里”。什么是最简单的方法来做到这一点?
我发现这种执行if
命令的方法:
$if echo test | grep st ; then echo yes ; fi ; echo $?
test
yes
0
Run Code Online (Sandbox Code Playgroud)
看起来不错。让我们尝试一下不匹配:
$if echo test | grep 123 ; then echo yes ; fi ; echo $?
0
Run Code Online (Sandbox Code Playgroud)
那是不对的。该if
语句运行正常,但返回零退出代码。
有人能为我解释一下吗?