几个月前,我在手臂上纹了一个叉形炸弹,我跳过了空白,因为我觉得没有它们看起来更好.但令我沮丧的是,有时(并不总是)当我在shell中运行它时它不会启动一个fork炸弹,但它只是给出了一个语法错误.
bash: syntax error near unexpected token `{:'
Run Code Online (Sandbox Code Playgroud)
昨天它发生在我试图在朋友的Bash shell中运行它,然后我添加了空白,它突然工作,:(){ :|:& };:而不是:(){:|:&};:
空白是否重要; 我的胳膊上有语法错误吗?!
它似乎总是在zsh中工作,但在Bash中不起作用.
一个相关的问题没有解释关于空白的任何事情,这确实是我的问题; 为什么Bash需要的空白能够正确解析它?
我正在阅读bash示例,if但有些示例是用单个方括号编写的:
if [ -f $param ]
then
#...
fi
Run Code Online (Sandbox Code Playgroud)
其他双方括号:
if [[ $? -ne 0 ]]
then
start looking for errors in yourlog
fi
Run Code Online (Sandbox Code Playgroud)
有什么不同?
我试图编写一个使用if语句的Bash脚本.
if [$CHOICE -eq 1];
Run Code Online (Sandbox Code Playgroud)
剧本是给我的错误,直到我后得到的空间[和之前]如下所示:
if [ $CHOICE -eq 1 ];
Run Code Online (Sandbox Code Playgroud)
我的问题是,为什么方括号周围的空间在Bash中如此重要?
我试图在while循环中获取数组,并且还需要更新数组中的值.
以下是我试过的代码.我收到这个错误[0: command not found
#!/bin/bash
i=0
while [$i -le "{#myarray[@]}" ]
do
echo "Welcome $i times"
i= $(($i+1)))
done
Run Code Online (Sandbox Code Playgroud)
我该如何解决?
我正在编写这个脚本来帮助我的团队将 Git 提交压缩到远程的集成分支中。不用说我的 bash 脚本有点不足。
首先,这是脚本:
#!/usr/bin/env bash
FEATURE_BRANCH_NAME="$1" &&
if [ -z "$1" ]; then
echo "You did not specify a branch name."
exit 1;
fi
if [${1} == "--force"]; then # the problem seems to happen here!
echo "You did not specify a branch name."
exit 1;
fi
if [ "$2" != "--force" ]; then
echo "Are you sure you want to squash commits for branch name = $FEATURE_BRANCH_NAME? If so use --force."
exit 1;
fi
git fetch …Run Code Online (Sandbox Code Playgroud)