в оболочке по умолчанию для цикла, приведенной нижеИзменение оболочки внутри сценария оболочки
for ((i=$llimit; i<=$ulimit; i++));
do
echo $i
done;
он выдает ошибку «„((“не ожидается»
, но при переходе на Баш оболочки
для цикла работает отлично
есть способ изменить оболочку внутри shellscript
или любое другое решение, так как это цикл находится внутри сценария оболочки
EDIT:
это HTE сценарий оболочки
#!/bin/bash
nav_var=`sqlplus -s tcs384160/tcs#1234 <<\EOF
set pagesize 0 feedback off verify off heading off echo off
select max(sequence#) from v$archived_log where applied='YES' and thread#=2 and dest_id=2;
exit;
EOF`
echo $nav_var;
ulimit=`expr $nav_var - 30`;
llimit=`expr $ulimit - 200`;
for ((i=$llimit; i<=$ulimit; i++));
do ls -l arch_aceprod_2_${i}_743034701.arc;
done;
Как правило, это так называемые притон линии (например, '#/USR/бен!/env bash' как первая строка), который контролирует, какая оболочка выполняет скрипт. Что это в вашем случае? Можете ли вы просто изменить его на bash? – mklement0
из домашнего каталога typing bash заставляет его менять оболочку, чтобы bash оболочка по умолчанию, я думаю, это ksh – user3186568