Shell 脚本未知操作数 alpine
Shell script unknown operand alpine
我 运行 遇到一个问题,如果变量不是 set/set 为空字符串,我的 shell 脚本将无法工作。
为此,我使用 alpine
图片
docker run -dt alpine
docker exec -it <container> sh
这是有问题的代码:
x=""
sh -c "if [ "$x" != "required" ]; then sed; fi"
未设置x
时,出现错误:
sh: required: unknown operand
这似乎只是空字符串的问题。如果我设置 x="lkajsdfasl"
,它会正常工作。
这只是在一个空的 string/not 集合上分解。
由于我的 docker-compose
的设置方式,我只能使用 sh
并且必须使用 sh -c
这是一个引用问题。像这样在命令周围使用单引号
sh -c 'if [ "$x" != "required" ]; then sed; fi'
我 运行 遇到一个问题,如果变量不是 set/set 为空字符串,我的 shell 脚本将无法工作。
为此,我使用 alpine
图片
docker run -dt alpine
docker exec -it <container> sh
这是有问题的代码:
x=""
sh -c "if [ "$x" != "required" ]; then sed; fi"
未设置x
时,出现错误:
sh: required: unknown operand
这似乎只是空字符串的问题。如果我设置 x="lkajsdfasl"
,它会正常工作。
这只是在一个空的 string/not 集合上分解。
由于我的 docker-compose
的设置方式,我只能使用 sh
并且必须使用 sh -c
这是一个引用问题。像这样在命令周围使用单引号
sh -c 'if [ "$x" != "required" ]; then sed; fi'