我正在尝试将bash中的code ,
更改为code .
,但是遇到了很多错误。这应该起作用。
code() {
if [[ $1 == ,]];
then
code .
else
code $1
fi
return 1
}
由于半冒号,它给我解析错误
如果我取出半冒号,它会给我期望的条件:$ 1
如果我在,
上加上引号并重新添加半冒号,如果我在`;'附近遇到解析错误,则
如果我保留引号并删除分号,则会得到预期的条件:$ 1
如果我删除半冒号并转义,
,那么它实际上将关闭终端窗口。
这是怎么回事?所有在线文档都可以使用。
答案 0 :(得分:0)
$ cat foo.sh
#!/bin/bash # added shebang, bash since you have [[
code() {
if [[ $1 == , ]] # removed the ; and added a space after ,
then
echo then # added this
code .
else
echo else # and this
code $1
fi
return 1
}
code $1
运行它:
$ bash foo.sh , | head -3
then
else
else
$ bash foo.sh . | head -3
else
else
else