如何在shell脚本中转​​义连字符( - )?

Ral*_*ayo 2 bash shell ubuntu

我的bash脚本一直失败,因为它在连字符处混淆:

if [ ! -d "$openssl-1.0.1i"]; then ...
Run Code Online (Sandbox Code Playgroud)

我该如何正确逃脱它?

Dav*_*ica 5

这不是连字符,你必须space在测试结构中留下每个参数:

if [ ! -d "$openssl-1.0.1i" ]; then ..
Run Code Online (Sandbox Code Playgroud)

为什么你$之前有openssl?这不是变数吗?如果没有,它应该只是:

if [ ! -d "openssl-1.0.1i" ]; then ..
Run Code Online (Sandbox Code Playgroud)