jena_m Ответов: 0

Я пытался скомпилировать этот скрипт, но всегда получал следующую ошибку “команда не найдена"?


i tried running this script but it didn't work! i typed ./FindSCT.bash visit.bash where is FindSC.bash is the name of my script and visit.bash is the file i want to get my input from. i tried to type chmod 700 FindSCT i also wrote chmod +x FindSCT.bash and also typed PATH="${PATH}:." but non of these things actually helped. also i made sure that the two files are in the same directory! any help would be very appreciated!
also i tried to add " " around ($1 also $2).. still command not found 

if i do ls i get this :(the two scripts are in the same directory :/
FindSCT.bash   visit.bash
!


Что я уже пробовал:

<pre>  <pre>#!/bin/bash
function ssort {
echo sort -rnk2 $1 | sort -rsk3 | uniq -2 | cut -d" " -f3 | wc -l
}
if (( $# == 1 )); then 
echo -rnk2 $1 | sort -rsk3 | uniq -2 | cut -d" " -f3
fi
if (( $# == 2 )); then 
   nn=`ssort $*`
     if (( ${nn} > $2 )); then
     echo -rnk2 $1 | sort -rsk3 | uniq -2 | cut -d" " -f3
  fi 
    echo -rnk2 $1 | sort -rsk3 | uniq -2 | cut -d" " -f3 | head -n{$2}
fi 

Richard MacCutchan

Пожалуйста, покажите длинный список (ls-l) каталога, в котором хранятся эти скрипты.

jena_m

эти два скрипта находятся в одном каталоге в главном каталоге

Richard MacCutchan

Покажите список.

jena_m

-rwx------ 1 jenazz users 400 Apr 19 11:42 FindSCT.bash
drwxr-xr-x 3 jenazz users 4096 Apr 18 19: 01 mtm
drwxr-xr-x 4 jenazz users 4096 Apr 18 19: 20 MTMEscapy
-rwx------ 1 пользователи jenazz 77 Apr 19 00: 18 visit.bash

Richard MacCutchan

Действительно ли вы находитесь в этом каталоге, когда запускаете команду. /FindSCT. bash ? Кроме того, сообщение об ошибке определенно является ответом на ваш вызов скрипта или это ответ на какую-то команду внутри скрипта?

Jochen Arndt

Когда я выполняю сценарий, я получаю другую ошибку:

"синтаксическая ошибка рядом с неожиданной знак `интернет'"

Исправлено вставкой "; затем" при совпадении, если:
if (( ${nn} > $2 )); then

Тем больше ошибок:
"вырезать: разделитель должен быть одним символом"

Исправлено путем вставки пробела перед параметром-f3 всех команд cut:
cut -d" " -f3

Затем он выполняется без ошибок.

jena_m

привет, спасибо за вашу помощь ! я попробую это сделать позже, но сначала у меня есть вопрос, как я могу увидеть, какие ошибки я получаю, потому что он просто показывает мне, что команда не найдена! и из-за этого я подумал, что что-то не так с размещением сценария, а не с самим сценарием :/

Jochen Arndt

Просто выполняйте команды вручную строка за строкой и часть за частью или закомментируйте строки в вашем скрипте.

Начните, например, с ввода
echo -rnk2 visit.basj | sort -rsk3 | uniq -2 | cut -d" " -f3

Если ошибка все еще существует удалите последнюю трубу:
echo -rnk2 visit.basj | sort -rsk3 | uniq -2

И так далее.

Но проблема в том, что ваш код содержит другие ошибки, о которых сообщается здесь. Какую систему и Linux вы используете?

Albert Holguin

Когда вы попробуете это снова... из каталога, в котором вы находитесь, сделайте следующее:
(0) перечислите текущий каталог
(1) Запустите pwd, чтобы увидеть ваш текущий рабочий каталог
(2) перечислите каталог /bin (чтобы убедиться, что у вас есть bash)
(3) перечислите переменные среды (env)

jena_m

хорошо, я попытаюсь сделать то, что вы предложили, потому что я просто попытался исправить другие ошибки, и это все еще дает мне то же самое сообщение "команда не найдена" мм, я не знаю, в какой системе я набрал lsb_release-a и получил это :
Версия LSB: :base-4.0-amd64:base-4.0-noarch:core-4.0-amd64:core-4.0-noarch:graphics-4.0-amd64:graphics-4.0-noarch:printing-4.0-amd64:printing-4.0-noarch
Идентификатор дистрибьютора: RedHatEnterpriseServer
Описание: Red Hat Enterprise Linux Server release 6.8 (Сантьяго)
Выпуск: 6.8
Кодовое Имя: Сантьяго

0 Ответов