【问题标题】:bin bash bad interpreterbin bash 错误的解释器
【发布时间】:2014-08-22 16:07:03
【问题描述】:
#! bin/bash
mkdir ~/folder
while [ $brojac -le 5]
do
mkdir ~/folder/zad"$brojac"
brojac = $(( brojac+1 ))
done

这是我的 shellscript,但是当我想在终端中运行它时,我收到了这个错误

mint@mint ~ $ ./prvi.sh
bash: ./prvi.sh: bin/bash: bad interpreter: No such file or directory
mint@mint ~ $ 

【问题讨论】:

标签: bash unix terminal bin


【解决方案1】:

应该是

#!/bin/bash

(第一个斜杠)

【讨论】:

【解决方案2】:
#!/bin/bash
mkdir ~/folder
brojac=0
while [ "$brojac" -le 5 ]    # with [...], need to quote vars and spaces around [ and ]
do
  mkdir ~/folder/zad"$brojac"
  brojac=$(( brojac+1 ))     # cannot have spaces around =
done

我会写:

for ((i=0; i<=5, i++)); do
    mkdir -p ~/folder/zad$i
done

【讨论】:

  • 我需要用while循环来写
  • 第一个解决方案是我的终端带来的错误第 3 行:[: : integer expression expected mint@mint ~ $
【解决方案3】:

或者简单的

mkdir -p ~/folder/zad{1..5}

如果你想要zad1, zad2 .. zad5

mkdir -p ~/folder/zad{,1..5}

如果你想要zad, zad1, zad2 .. zad5

【讨论】:

    【解决方案4】:

    脚本中的小错误:

    1. $brojac 未分配,因此您的整数比较失败。为其分配一个初始值以进行修复。
    2. '[' 调用测试,因此您需要在左大括号和右大括号周围留有空格。
    3. 分配值时,等号周围不能有空格。

    您的脚本,已更新:

    #!/bin/bash
    mkdir ~/folder
    brojac=0
    while [ $brojac -le 5 ]
    do
        mkdir ~/folder/zad"$brojac"
        brojac=$(( brojac+1 ))
    done
    

    【讨论】:

      猜你喜欢
      • 2014-11-23
      • 1970-01-01
      • 1970-01-01
      • 2019-10-12
      • 2011-02-24
      • 2014-01-21
      • 1970-01-01
      • 2014-10-24
      相关资源
      最近更新 更多