第四行的错误在哪里?
if [ $bn == README ]; then
Run Code Online (Sandbox Code Playgroud)
如果我把它写成,我仍然会得到
if [ $bn == README ]
then
Run Code Online (Sandbox Code Playgroud)
要么
if [ "$bn" == "README" ]; then
Run Code Online (Sandbox Code Playgroud)
语境:
for fi in /etc/uwsgi/apps-available/*
do
bn=`basename $fi .ini`
if [ $bn == "README" ]
then
echo "~ ***#*** ~"
else
echo "## Shortend for convience ##"
fi
done
Run Code Online (Sandbox Code Playgroud)
kon*_*box 13
您不能使用==进行单括号比较([]).使用single =代替.您还必须引用变量以防止扩展.
if [ "$bn" = README ]; then
Run Code Online (Sandbox Code Playgroud)
如果你使用[[]],那可能适用,你不需要引用第一个参数:
if [[ $bn == README ]]; then
Run Code Online (Sandbox Code Playgroud)
将以下内容添加到脚本顶部:
#! /bin/bash
Run Code Online (Sandbox Code Playgroud)
在 bash 中,与在单括号内使用时== 相同。=然而,这是不可移植的。#! /bin/bash因此,您应该通过将 放在脚本的顶部来明确告诉 shell 使用 bash 作为脚本的解释器。
或者,使用 进行字符串比较=。请注意,该==运算符在双括号内使用时的行为与在单括号内使用时的行为不同(请参阅链接)。