/ / Писане на for loop в bash с помощта на променлива - bash

Писане на for loop в bash с помощта на променлива - bash

Искам да създам за цикъл в bash, който тече от 1 до номер, съхраняван в променлива в bash, Опитах се да направя отговора това Въпросът разказва, но той създава тази грешка:

Syntax error: Bad for loop variable

Моята операционна система е Ubuntu 12.04 и кодът изглежда така:

#!/bin/bash
TOP=10
for ((i=1; i<=$TOP; i++))
do
echo $i
done

Какво означава това съобщение за грешка? Тук е изходен образ:

въведете описанието на изображението тук

Отговори:

6 за отговор № 1

Синхронизирате скрипта с sh, не bash, Опитвам:

bash split_history_file_test.sh

9 за отговор № 2

С-стил за цикъл работи само в няколко черупки и bash е сред тях. Това е синтаксисът не е част от POSIX стандарта.

#!/bin/bash
TOP=10
for ((i=1; i<=$TOP; i++))
do
echo $i
done

POSIX-съвместим за цикъл ще бъде следният

#!/bin/bash
TOP=10
for i in $(seq 1 $TOP)
do
echo $i
done

Това работи както в bash, така и в sh.

За да разберете в кой обкръжение сте влезли, изпълнете следната команда

ps -p $$

Където $$ е PID на текущия процес и текущият процес е вашата черупка, и ps -p ще отпечата информация за този процес.

За да промените приложението си за входно съдържание chsh команда.


0 за отговор № 3

Този код не създава тази грешка. Баш версията, доставена с тази версия на Ubuntu, трябва да я изпълни без проблеми.

Забележка: искате да echo $i.