Искам да създам за цикъл в 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
.