У меня уже были установлены «Samsung Unified Linux Driver» и «Xsane», и принтер работал хорошо. Только сканер не найден. После добавления следующей записи в /etc/sane.d/xerox_mfp.conf был найден сканер:
#Samsung CLX-3180 tcp 10.0.0.11 # <- insert your printer's actual IP herePS: Я получил этот намек по этой ссылке.
Есть три очевидные ошибки:
В строке else s=$1-50 m=$2-50 h=$1+1 fi слово fi не рассматривается как ключевое слово, потому что это не первое слово в команде. Для оболочки это выглядит как три назначения, которые применяются к команде fi. Если вам когда-нибудь понадобится выполнить эту строку, вы увидите ошибку bash: fi: command not found. Положите fi на собственную строку (или поставьте перед ней ;). [ "$3" < 50 ] совпадает с [ "$3" ] < 50 - это команда [ … ] (которая также может быть записана test) с единственным аргументом "$3" и с перенаправлением ввода из файла 50. Либо используйте оператор числового сравнения -lt, либо используйте арифметическую команду (( … )). Конструкция с одним скобком является обычной встроенной командой, поэтому специальные символы, такие как <, сохраняют свое нормальное значение. Конструкция с двойной скобкой является специальным синтаксисом, и вы можете использовать < в качестве оператора цифрового сравнения внутри. ["$2" < 50 ] не хватает места после открытия скобки.Также обычным соглашением в сценариях оболочки является посылка символа новой строки после then и else. Кроме того, вместо блока else, который полностью состоит из оператора if, вы должны использовать elif. И, пожалуйста, последовательно отступайте.
#!/bin/bash
declare -i s
declare -i m
declare -i h
if (( $3 < 50 )); then
s=$3+10 m=$2 h=$1
elif (( $2 < 50 )); then
s=$3-50 m=$2+1 h=$1
else
s=$1-50 m=$2-50 h=$1+1
fi
echo "$h:$m:$s"
P.S. Я не рассмотрел вашу логику. Кажется, вы ищете date +%T -d 'now + 10 seconds'.
Существуют три очевидные ошибки:
else s=$1-50 m=$2-50 h=$1+1 fi
слово fi
не рассматривается как ключевое слово, потому что это не первое слово в команде. Для оболочки это выглядит как три назначения, которые применяются к команде fi
. Если вам когда-нибудь понадобится выполнить эту строку, вы увидите ошибку bash: fi: command not found
. Положите fi
на собственную строку (или поместите перед ней ;
). [ "$3" < 50 ]
совпадает с [ "$3" ] < 50
- это команда [ … ]
(которая также может быть test
) с единственным аргументом "$3"
и с перенастройкой ввода из файла 50
. Либо используйте оператор числового сравнения -lt
, либо используйте арифметическую команду (( … ))
. Конструкция с одним скобком является обычной встроенной командой, поэтому специальные символы, такие как <
, сохраняют свое нормальное значение. Конструкция с двойными скобками является специальным синтаксисом, и вы можете использовать <
в качестве оператора цифрового сравнения внутри. ["$2" < 50 ]
не хватает пробела после открытия скобки. Также обычное соглашение в сценариях оболочки заключается в том, чтобы поместить символ новой строки после then
и else
. Кроме того, вместо блока else
, который полностью состоит из оператора if
, вы должны использовать elif
. И, пожалуйста, последовательно отступайте.
#!/bin/bash
declare -i s
declare -i m
declare -i h
if (( $3 < 50 )); then
s=$3+10 m=$2 h=$1
elif (( $2 < 50 )); then
s=$3-50 m=$2+1 h=$1
else
s=$1-50 m=$2-50 h=$1+1
fi
echo "$h:$m:$s"
P.S. Я не рассмотрел вашу логику. Кажется, вы ищете date +%T -d 'now + 10 seconds'
.
Существуют три очевидные ошибки:
else s=$1-50 m=$2-50 h=$1+1 fi
слово fi
не рассматривается как ключевое слово, потому что это не первое слово в команде. Для оболочки это выглядит как три назначения, которые применяются к команде fi
. Если вам когда-нибудь понадобится выполнить эту строку, вы увидите ошибку bash: fi: command not found
. Положите fi
на собственную строку (или поместите перед ней ;
). [ "$3" < 50 ]
совпадает с [ "$3" ] < 50
- это команда [ … ]
(которая также может быть test
) с единственным аргументом "$3"
и с перенастройкой ввода из файла 50
. Либо используйте оператор числового сравнения -lt
, либо используйте арифметическую команду (( … ))
. Конструкция с одним скобком является обычной встроенной командой, поэтому специальные символы, такие как <
, сохраняют свое нормальное значение. Конструкция с двойными скобками является специальным синтаксисом, и вы можете использовать <
в качестве оператора цифрового сравнения внутри. ["$2" < 50 ]
не хватает пробела после открытия скобки. Также обычное соглашение в сценариях оболочки заключается в том, чтобы поместить символ новой строки после then
и else
. Кроме того, вместо блока else
, который полностью состоит из оператора if
, вы должны использовать elif
. И, пожалуйста, последовательно отступайте.
#!/bin/bash
declare -i s
declare -i m
declare -i h
if (( $3 < 50 )); then
s=$3+10 m=$2 h=$1
elif (( $2 < 50 )); then
s=$3-50 m=$2+1 h=$1
else
s=$1-50 m=$2-50 h=$1+1
fi
echo "$h:$m:$s"
P.S. Я не рассмотрел вашу логику. Кажется, вы ищете date +%T -d 'now + 10 seconds'
.
Существуют три очевидные ошибки:
else s=$1-50 m=$2-50 h=$1+1 fi
слово fi
не рассматривается как ключевое слово, потому что это не первое слово в команде. Для оболочки это выглядит как три назначения, которые применяются к команде fi
. Если вам когда-нибудь понадобится выполнить эту строку, вы увидите ошибку bash: fi: command not found
. Положите fi
на собственную строку (или поместите перед ней ;
). [ "$3" < 50 ]
совпадает с [ "$3" ] < 50
- это команда [ … ]
(которая также может быть test
) с единственным аргументом "$3"
и с перенастройкой ввода из файла 50
. Либо используйте оператор числового сравнения -lt
, либо используйте арифметическую команду (( … ))
. Конструкция с одним скобком является обычной встроенной командой, поэтому специальные символы, такие как <
, сохраняют свое нормальное значение. Конструкция с двойными скобками является специальным синтаксисом, и вы можете использовать <
в качестве оператора цифрового сравнения внутри. ["$2" < 50 ]
не хватает пробела после открытия скобки. Также обычное соглашение в сценариях оболочки заключается в том, чтобы поместить символ новой строки после then
и else
. Кроме того, вместо блока else
, который полностью состоит из оператора if
, вы должны использовать elif
. И, пожалуйста, последовательно отступайте.
#!/bin/bash
declare -i s
declare -i m
declare -i h
if (( $3 < 50 )); then
s=$3+10 m=$2 h=$1
elif (( $2 < 50 )); then
s=$3-50 m=$2+1 h=$1
else
s=$1-50 m=$2-50 h=$1+1
fi
echo "$h:$m:$s"
P.S. Я не рассмотрел вашу логику. Кажется, вы ищете date +%T -d 'now + 10 seconds'
.
Существуют три очевидные ошибки:
else s=$1-50 m=$2-50 h=$1+1 fi
слово fi
не рассматривается как ключевое слово, потому что это не первое слово в команде. Для оболочки это выглядит как три назначения, которые применяются к команде fi
. Если вам когда-нибудь понадобится выполнить эту строку, вы увидите ошибку bash: fi: command not found
. Положите fi
на собственную строку (или поместите перед ней ;
). [ "$3" < 50 ]
совпадает с [ "$3" ] < 50
- это команда [ … ]
(которая также может быть test
) с единственным аргументом "$3"
и с перенастройкой ввода из файла 50
. Либо используйте оператор числового сравнения -lt
, либо используйте арифметическую команду (( … ))
. Конструкция с одним скобком является обычной встроенной командой, поэтому специальные символы, такие как <
, сохраняют свое нормальное значение. Конструкция с двойными скобками является специальным синтаксисом, и вы можете использовать <
в качестве оператора цифрового сравнения внутри. ["$2" < 50 ]
не хватает пробела после открытия скобки. Также обычное соглашение в сценариях оболочки заключается в том, чтобы поместить символ новой строки после then
и else
. Кроме того, вместо блока else
, который полностью состоит из оператора if
, вы должны использовать elif
. И, пожалуйста, последовательно отступайте.
#!/bin/bash
declare -i s
declare -i m
declare -i h
if (( $3 < 50 )); then
s=$3+10 m=$2 h=$1
elif (( $2 < 50 )); then
s=$3-50 m=$2+1 h=$1
else
s=$1-50 m=$2-50 h=$1+1
fi
echo "$h:$m:$s"
P.S. Я не рассмотрел вашу логику. Кажется, вы ищете date +%T -d 'now + 10 seconds'
.
Существуют три очевидные ошибки:
else s=$1-50 m=$2-50 h=$1+1 fi
слово fi
не рассматривается как ключевое слово, потому что это не первое слово в команде. Для оболочки это выглядит как три назначения, которые применяются к команде fi
. Если вам когда-нибудь понадобится выполнить эту строку, вы увидите ошибку bash: fi: command not found
. Положите fi
на собственную строку (или поместите перед ней ;
). [ "$3" < 50 ]
совпадает с [ "$3" ] < 50
- это команда [ … ]
(которая также может быть test
) с единственным аргументом "$3"
и с перенастройкой ввода из файла 50
. Либо используйте оператор числового сравнения -lt
, либо используйте арифметическую команду (( … ))
. Конструкция с одним скобком является обычной встроенной командой, поэтому специальные символы, такие как <
, сохраняют свое нормальное значение. Конструкция с двойными скобками является специальным синтаксисом, и вы можете использовать <
в качестве оператора цифрового сравнения внутри. ["$2" < 50 ]
не хватает пробела после открытия скобки. Также обычное соглашение в сценариях оболочки заключается в том, чтобы поместить символ новой строки после then
и else
. Кроме того, вместо блока else
, который полностью состоит из оператора if
, вы должны использовать elif
. И, пожалуйста, последовательно отступайте.
#!/bin/bash
declare -i s
declare -i m
declare -i h
if (( $3 < 50 )); then
s=$3+10 m=$2 h=$1
elif (( $2 < 50 )); then
s=$3-50 m=$2+1 h=$1
else
s=$1-50 m=$2-50 h=$1+1
fi
echo "$h:$m:$s"
P.S. Я не рассмотрел вашу логику. Кажется, вы ищете date +%T -d 'now + 10 seconds'
.
Существуют три очевидные ошибки:
else s=$1-50 m=$2-50 h=$1+1 fi
слово fi
не рассматривается как ключевое слово, потому что это не первое слово в команде. Для оболочки это выглядит как три назначения, которые применяются к команде fi
. Если вам когда-нибудь понадобится выполнить эту строку, вы увидите ошибку bash: fi: command not found
. Положите fi
на собственную строку (или поместите перед ней ;
). [ "$3" < 50 ]
совпадает с [ "$3" ] < 50
- это команда [ … ]
(которая также может быть test
) с единственным аргументом "$3"
и с перенастройкой ввода из файла 50
. Либо используйте оператор числового сравнения -lt
, либо используйте арифметическую команду (( … ))
. Конструкция с одним скобком является обычной встроенной командой, поэтому специальные символы, такие как <
, сохраняют свое нормальное значение. Конструкция с двойными скобками является специальным синтаксисом, и вы можете использовать <
в качестве оператора цифрового сравнения внутри. ["$2" < 50 ]
не хватает пробела после открытия скобки. Также обычное соглашение в сценариях оболочки заключается в том, чтобы поместить символ новой строки после then
и else
. Кроме того, вместо блока else
, который полностью состоит из оператора if
, вы должны использовать elif
. И, пожалуйста, последовательно отступайте.
#!/bin/bash
declare -i s
declare -i m
declare -i h
if (( $3 < 50 )); then
s=$3+10 m=$2 h=$1
elif (( $2 < 50 )); then
s=$3-50 m=$2+1 h=$1
else
s=$1-50 m=$2-50 h=$1+1
fi
echo "$h:$m:$s"
P.S. Я не рассмотрел вашу логику. Кажется, вы ищете date +%T -d 'now + 10 seconds'
.
Существуют три очевидные ошибки:
else s=$1-50 m=$2-50 h=$1+1 fi
слово fi
не рассматривается как ключевое слово, потому что это не первое слово в команде. Для оболочки это выглядит как три назначения, которые применяются к команде fi
. Если вам когда-нибудь понадобится выполнить эту строку, вы увидите ошибку bash: fi: command not found
. Положите fi
на собственную строку (или поместите перед ней ;
). [ "$3" < 50 ]
совпадает с [ "$3" ] < 50
- это команда [ … ]
(которая также может быть test
) с единственным аргументом "$3"
и с перенастройкой ввода из файла 50
. Либо используйте оператор числового сравнения -lt
, либо используйте арифметическую команду (( … ))
. Конструкция с одним скобком является обычной встроенной командой, поэтому специальные символы, такие как <
, сохраняют свое нормальное значение. Конструкция с двойными скобками является специальным синтаксисом, и вы можете использовать <
в качестве оператора цифрового сравнения внутри. ["$2" < 50 ]
не хватает пробела после открытия скобки. Также обычное соглашение в сценариях оболочки заключается в том, чтобы поместить символ новой строки после then
и else
. Кроме того, вместо блока else
, который полностью состоит из оператора if
, вы должны использовать elif
. И, пожалуйста, последовательно отступайте.
#!/bin/bash
declare -i s
declare -i m
declare -i h
if (( $3 < 50 )); then
s=$3+10 m=$2 h=$1
elif (( $2 < 50 )); then
s=$3-50 m=$2+1 h=$1
else
s=$1-50 m=$2-50 h=$1+1
fi
echo "$h:$m:$s"
P.S. Я не рассмотрел вашу логику. Кажется, вы ищете date +%T -d 'now + 10 seconds'
.
[[ $3 < 50 ]]
сравнивает $ 3 с 50 лексикографически i>, поэтому, если $ 3 равно 6, команда возвращает false, так как 6 появляется после 5. используйте (( ))
для арифметического сравнения.
– geirha
3 June 2012 в 19:47
Вы забыли ; после вложенного оператора fi
#!/bin/bash
declare -i s
declare -i m
declare -i h
if [ "$3" < 50 ]; then s=$3+10 m=$2 h=$1
else if ["$2" < 50 ];
then s=$3-50 m=$2+1 h=$1
else s=$1-50 m=$2-50 h=$1+1 ;fi
fi
echo "$h:$m:$s"
Вы забыли ;
после вложенного оператора fi
#!/bin/bash
declare -i s
declare -i m
declare -i h
if [ "$3" < 50 ]; then s=$3+10 m=$2 h=$1
else if ["$2" < 50 ];
then s=$3-50 m=$2+1 h=$1
else s=$1-50 m=$2-50 h=$1+1 ;fi
fi
echo "$h:$m:$s"
Вы забыли ;
после вложенного оператора fi
#!/bin/bash
declare -i s
declare -i m
declare -i h
if [ "$3" < 50 ]; then s=$3+10 m=$2 h=$1
else if ["$2" < 50 ];
then s=$3-50 m=$2+1 h=$1
else s=$1-50 m=$2-50 h=$1+1 ;fi
fi
echo "$h:$m:$s"
Вы забыли ;
после вложенного оператора fi
#!/bin/bash
declare -i s
declare -i m
declare -i h
if [ "$3" < 50 ]; then s=$3+10 m=$2 h=$1
else if ["$2" < 50 ];
then s=$3-50 m=$2+1 h=$1
else s=$1-50 m=$2-50 h=$1+1 ;fi
fi
echo "$h:$m:$s"
Вы забыли ;
после вложенного оператора fi
#!/bin/bash
declare -i s
declare -i m
declare -i h
if [ "$3" < 50 ]; then s=$3+10 m=$2 h=$1
else if ["$2" < 50 ];
then s=$3-50 m=$2+1 h=$1
else s=$1-50 m=$2-50 h=$1+1 ;fi
fi
echo "$h:$m:$s"
Вы забыли ;
после вложенного оператора fi
#!/bin/bash
declare -i s
declare -i m
declare -i h
if [ "$3" < 50 ]; then s=$3+10 m=$2 h=$1
else if ["$2" < 50 ];
then s=$3-50 m=$2+1 h=$1
else s=$1-50 m=$2-50 h=$1+1 ;fi
fi
echo "$h:$m:$s"
Вы забыли ;
после вложенного оператора fi
#!/bin/bash
declare -i s
declare -i m
declare -i h
if [ "$3" < 50 ]; then s=$3+10 m=$2 h=$1
else if ["$2" < 50 ];
then s=$3-50 m=$2+1 h=$1
else s=$1-50 m=$2-50 h=$1+1 ;fi
fi
echo "$h:$m:$s"
Вы забыли ;
после вложенного оператора fi
#!/bin/bash
declare -i s
declare -i m
declare -i h
if [ "$3" < 50 ]; then s=$3+10 m=$2 h=$1
else if ["$2" < 50 ];
then s=$3-50 m=$2+1 h=$1
else s=$1-50 m=$2-50 h=$1+1 ;fi
fi
echo "$h:$m:$s"