我在bash脚本中有一个-d选项,但我不知道它能做什么
cp -r ${version} ${version}tm
[ -d "latest-oi" ] rm latest-oi #line 35
[ -d "latest-tm" ] rm latest-tm #line 36
ln -sf "${version}" latest-oi
ln -sf "${version}tm" latest-tm当我执行这个脚本时,我有一条错误消息,我不知道为什么
./script.sh: line 35: [: missing `]'
./script.sh: line 36: [: missing `]'我想知道-d是什么意思,它是干什么的,以及在执行脚本时为什么会出错,谢谢
发布于 2022-02-01 12:13:26
我没有看到任何-d选项可以选择bash,而是命令[。有关此命令,请参见人工测试。如果希望在同一行中有两个命令,则在它们之间使用命令分隔符。有效的命令分隔符是换行符、;、&&或||。
如果你写一个
[ -d "latest-oi" ] && rm latest-oi这意味着,如果rm返回退出代码为零,则执行[。另一种写它的方法是
test -d latest-oi && rm latest-oi如果要使用||,则每当[返回非零退出代码时,就会执行rm。
https://stackoverflow.com/questions/70939448
复制相似问题