Поскольку код в ветке разработки SVN часто может быть разбит, у вас есть 2 варианта: Проверьте более старую ревизию репо SVN: svn checkout -r REVISION_NUMBER http://whatever/the/repo/is, где REVISION_NUMBER рабочая ревизия. Исправьте его - если вы знаете C, это может быть тривиально. Обновите извлеченную копию снова - возможно, она уже исправлена!
Другие уже упоминали: важно иметь / bin / bash, если вы используете функции bash, также / bin / sh был привязан к / bin / bash, но теперь (насколько я заметил), он символически привязан к «тире», который не обеспечит совместимость с bash, только POSIX «sh». Это очень важно, даже довольно дорогое программное обеспечение в нашей фирме имеет эту проблему: скрипты содержат #! / Bin / sh в качестве первой строки, но также зависят от функций bash.
Другие уже упомянули: важно иметь /bin/bash, если вы используете функции bash, также /bin/sh был привязан к /bin/bash, но теперь-в-днях (насколько это возможно Я заметил), он символически связан с dash, который не обеспечит совместимость с bash, только POSIX sh. Это очень важно, даже довольно дорогое программное обеспечение в нашей фирме имеет эту проблему: скрипты содержат #!/bin/sh в качестве первой строки, но также зависят от функциональности bash.
Другие уже упомянули: важно иметь /bin/bash, если вы используете функции bash, также /bin/sh был привязан к /bin/bash, но теперь-в-днях (насколько это возможно Я заметил), он символически связан с dash, который не обеспечит совместимость с bash, только POSIX sh. Это очень важно, даже довольно дорогое программное обеспечение в нашей фирме имеет эту проблему: скрипты содержат #!/bin/sh в качестве первой строки, но также зависят от функциональности bash.
Другие уже упомянули: важно иметь /bin/bash, если вы используете функции bash, также /bin/sh был привязан к /bin/bash, но теперь-в-днях (насколько это возможно Я заметил), он символически связан с dash, который не обеспечит совместимость с bash, только POSIX sh. Это очень важно, даже довольно дорогое программное обеспечение в нашей фирме имеет эту проблему: скрипты содержат #!/bin/sh в качестве первой строки, но также зависят от функциональности bash.
Другие уже упомянули: важно иметь /bin/bash, если вы используете функции bash, также /bin/sh был привязан к /bin/bash, но теперь-в-днях (насколько это возможно Я заметил), он символически связан с dash, который не обеспечит совместимость с bash, только POSIX sh. Это очень важно, даже довольно дорогое программное обеспечение в нашей фирме имеет эту проблему: скрипты содержат #!/bin/sh в качестве первой строки, но также зависят от функциональности bash.
Другие уже упомянули: важно иметь /bin/bash, если вы используете функции bash, также /bin/sh был привязан к /bin/bash, но теперь-в-днях (насколько это возможно Я заметил), он символически связан с dash, который не обеспечит совместимость с bash, только POSIX sh. Это очень важно, даже довольно дорогое программное обеспечение в нашей фирме имеет эту проблему: скрипты содержат #!/bin/sh в качестве первой строки, но также зависят от функциональности bash.
Другие уже упомянули: важно иметь /bin/bash, если вы используете функции bash, также /bin/sh был привязан к /bin/bash, но теперь-в-днях (насколько это возможно Я заметил), он символически связан с dash, который не обеспечит совместимость с bash, только POSIX sh. Это очень важно, даже довольно дорогое программное обеспечение в нашей фирме имеет эту проблему: скрипты содержат #!/bin/sh в качестве первой строки, но также зависят от функциональности bash.
./ script
или полного пути или чего-то еще. Сценарий
может не работать (он работает, если каталог находится в $ PATH
, например / usr / bin
), так как в системах UNIX это не chmod + x script
будет создан это исполняемый файл. #! / bin / bash
в качестве первой строки в вашем скрипте. Также убедитесь, что он не редактируется с помощью какого-либо редактора Windows, поскольку они часто используют «тип DOS» для eol (конец строки), который отличается от UNIX (если контрольный список выше в порядке, но вы получили «плохое» интерпретатор: нет такого файла или каталога "или так, даже если это / bin / bash, это часто является причиной, так как непечатаемый - так что вы обычно этого не видите - \r будет рассматриваться как часть путь переводчика) Другие уже упомянули: важно использовать / bin / bash
, если вы используете функции bash, также / bin / sh [ ! d7] был привязан к
/ bin / bash
, но теперь-в-днях (насколько я заметил) он символически связан с тире
, который не обеспечит совместимость с bash, только POSIX sh
. Это очень важно, даже у довольно дорогого программного обеспечения у нашей фирмы есть эта проблема: скрипты содержат #! / Bin / sh
в качестве первой строки, но также зависят от функциональности bash.
./ script
или полного пути или чего-то еще. Сценарий
может не работать (он работает, если каталог находится в $ PATH
, например / usr / bin
), так как в системах UNIX это не chmod + x script
будет создан это исполняемый файл. #! / bin / bash
в качестве первой строки в вашем скрипте. Также убедитесь, что он не редактируется с помощью какого-либо редактора Windows, поскольку они часто используют «тип DOS» для eol (конец строки), который отличается от UNIX (если контрольный список выше в порядке, но вы получили «плохое» интерпретатор: нет такого файла или каталога "или так, даже если это / bin / bash, это часто является причиной, так как непечатаемый - так что вы обычно этого не видите - \r будет рассматриваться как часть путь переводчика) Другие уже упомянули: важно использовать / bin / bash
, если вы используете функции bash, также / bin / sh [ ! d7] был привязан к
/ bin / bash
, но теперь-в-днях (насколько я заметил) он символически связан с тире
, который не обеспечит совместимость с bash, только POSIX sh
. Это очень важно, даже у довольно дорогого программного обеспечения у нашей фирмы есть эта проблема: скрипты содержат #! / Bin / sh
в качестве первой строки, но также зависят от функциональности bash.
#! / Usr / bin / env bash
, который немного более портативен.
– Sparhawk
9 March 2014 в 20:46
Убедитесь, что первая строка файла читается:
#!/bin/bash
Если shebang - #!/bin/sh, вы не должны использовать какие-либо специфичные для bash функции, только функции POSIX. Даже если /bin/sh является символической ссылкой на bash, bash будет работать в режиме совместимости с POSIX при запуске как sh, отключив некоторые (но не все) функции bash.
Вам также нужно будет сделать конечно скрипт исполняемый, конечно.
Альтернативный, сильно обескураженный способ добавляет . к PATH.
PATH=".:$PATH"
или
PATH="$PATH:."
Проблема с этим подходом заключается в том, что в первом case, любая системная команда может быть переопределена исполняемыми файлами из текущего каталога, а в последнем случае неизвестные команды все равно могут быть переопределены.
Рассмотрим следующее:
#!/bin/bash
./my_malicious_script &>/dev/null
/bin/ls "$@"
Скорее всего, вы даже не заметите, пока не станет слишком поздно.
Убедитесь, что первая строка файла читается:
#!/bin/bash
Если shebang - #!/bin/sh, вы не должны использовать какие-либо специфичные для bash функции, только функции POSIX. Даже если /bin/sh является символической ссылкой на bash, bash будет работать в режиме совместимости с POSIX при запуске как sh, отключив некоторые (но не все) функции bash.
Вам также нужно будет сделать конечно скрипт исполняемый, конечно.
Альтернативный, сильно обескураженный способ добавляет . к PATH.
PATH=".:$PATH"
или
PATH="$PATH:."
Проблема с этим подходом заключается в том, что в первом case, любая системная команда может быть переопределена исполняемыми файлами из текущего каталога, а в последнем случае неизвестные команды все равно могут быть переопределены.
Рассмотрим следующее:
#!/bin/bash
./my_malicious_script &>/dev/null
/bin/ls "$@"
Скорее всего, вы даже не заметите, пока не станет слишком поздно.
Убедитесь, что первая строка файла читается:
#!/bin/bash
Если shebang - #!/bin/sh, вы не должны использовать какие-либо специфичные для bash функции, только функции POSIX. Даже если /bin/sh является символической ссылкой на bash, bash будет работать в режиме совместимости с POSIX при запуске как sh, отключив некоторые (но не все) функции bash.
Вам также нужно будет сделать конечно скрипт исполняемый, конечно.
Альтернативный, сильно обескураженный способ добавляет . к PATH.
PATH=".:$PATH"
или
PATH="$PATH:."
Проблема с этим подходом заключается в том, что в первом case, любая системная команда может быть переопределена исполняемыми файлами из текущего каталога, а в последнем случае неизвестные команды все равно могут быть переопределены.
Рассмотрим следующее:
#!/bin/bash
./my_malicious_script &>/dev/null
/bin/ls "$@"
Скорее всего, вы даже не заметите, пока не станет слишком поздно.
Убедитесь, что первая строка файла читается:
#!/bin/bash
Если shebang - #!/bin/sh, вы не должны использовать какие-либо специфичные для bash функции, только функции POSIX. Даже если /bin/sh является символической ссылкой на bash, bash будет работать в режиме совместимости с POSIX при запуске как sh, отключив некоторые (но не все) функции bash.
Вам также нужно будет сделать конечно скрипт исполняемый, конечно.
Альтернативный, сильно обескураженный способ добавляет . к PATH.
PATH=".:$PATH"
или
PATH="$PATH:."
Проблема с этим подходом заключается в том, что в первом case, любая системная команда может быть переопределена исполняемыми файлами из текущего каталога, а в последнем случае неизвестные команды все равно могут быть переопределены.
Рассмотрим следующее:
#!/bin/bash
./my_malicious_script &>/dev/null
/bin/ls "$@"
Скорее всего, вы даже не заметите, пока не станет слишком поздно.
Убедитесь, что первая строка файла читается:
#!/bin/bash
Если shebang - #!/bin/sh, вы не должны использовать какие-либо специфичные для bash функции, только функции POSIX. Даже если /bin/sh является символической ссылкой на bash, bash будет работать в режиме совместимости с POSIX при запуске как sh, отключив некоторые (но не все) функции bash.
Вам также нужно будет сделать конечно скрипт исполняемый, конечно.
Альтернативный, сильно обескураженный способ добавляет . к PATH.
PATH=".:$PATH"
или
PATH="$PATH:."
Проблема с этим подходом заключается в том, что в первом case, любая системная команда может быть переопределена исполняемыми файлами из текущего каталога, а в последнем случае неизвестные команды все равно могут быть переопределены.
Рассмотрим следующее:
#!/bin/bash
./my_malicious_script &>/dev/null
/bin/ls "$@"
Скорее всего, вы даже не заметите, пока не станет слишком поздно.
Убедитесь, что первая строка файла читается:
#!/bin/bash
Если shebang - #!/bin/sh, вы не должны использовать какие-либо специфичные для bash функции, только функции POSIX. Даже если /bin/sh является символической ссылкой на bash, bash будет работать в режиме совместимости с POSIX при запуске как sh, отключив некоторые (но не все) функции bash.
Вам также нужно будет сделать конечно скрипт исполняемый, конечно.
Альтернативный, сильно обескураженный способ добавляет . к PATH.
PATH=".:$PATH"
или
PATH="$PATH:."
Проблема с этим подходом заключается в том, что в первом case, любая системная команда может быть переопределена исполняемыми файлами из текущего каталога, а в последнем случае неизвестные команды все равно могут быть переопределены.
Рассмотрим следующее:
#!/bin/bash
./my_malicious_script &>/dev/null
/bin/ls "$@"
Скорее всего, вы даже не заметите, пока не станет слишком поздно.
Убедитесь, что первая строка файла читается:
#!/bin/bash
Если shebang - #!/bin/sh, вы не должны использовать какие-либо специфичные для bash функции, только функции POSIX. Даже если /bin/sh является символической ссылкой на bash, bash будет работать в режиме совместимости с POSIX при запуске как sh, отключив некоторые (но не все) функции bash.
Вам также нужно будет сделать конечно скрипт исполняемый, конечно.
Альтернативный, сильно обескураженный способ добавляет . к PATH.
PATH=".:$PATH"
или
PATH="$PATH:."
Проблема с этим подходом заключается в том, что в первом case, любая системная команда может быть переопределена исполняемыми файлами из текущего каталога, а в последнем случае неизвестные команды все равно могут быть переопределены.
Рассмотрим следующее:
#!/bin/bash
./my_malicious_script &>/dev/null
/bin/ls "$@"
Скорее всего, вы даже не заметите, пока не станет слишком поздно.
Альтернативным, сильно обескураженным способом является добавление .
к PATH
.
PATH = ".: $ PATH"
или
PATH = "$ PATH :."
Проблема с этим подходом заключается в том, что в первом случае любая системная команда может быть переопределена исполняемыми файлами из текущего каталога, а в последнем случае неизвестные команды все равно могут быть переопределены. [ ! d8]
Рассмотрим следующее:
#! / bin / bash ./my_malicious_script & amp; gt; / dev / null / bin / ls "$ @"
Скорее всего, вы даже не заметили бы, пока не стало слишком поздно.
Убедитесь, что первая строка файла читается:
#! / bin / bash
Если shebang - #! / bin / sh
, вы не должны использовать какие-либо специфичные для bash функции, только функции POSIX. Даже если / bin / sh
является символической ссылкой на bash
, bash будет работать в режиме совместимости POSIX при запуске как sh, отключив некоторые (но не все) bash-функции. [ ! d5]
Вы также должны убедиться, что скрипт является исполняемым, конечно.
Альтернативным, сильно обескураженным способом является добавление .
к PATH
.
PATH = ".: $ PATH"
или
PATH = "$ PATH :."
Проблема с этим подходом заключается в том, что в первом случае любая системная команда может быть переопределена исполняемыми файлами из текущего каталога, а в последнем случае неизвестные команды все равно могут быть переопределены. [ ! d8]
Рассмотрим следующее:
#! / bin / bash ./my_malicious_script & amp; gt; / dev / null / bin / ls "$ @"
Скорее всего, вы даже не заметили бы, пока не стало слишком поздно.
echo
, например, тот, который находится в вашем каталоге, будет использоваться просто потому, что этот каталог установлен в переменной PATH
перед / bin
. Shell просто ищет команды в определенных каталогах в зависимости от их порядка в PATH
и не отменяет / не уничтожает ничего. Но да, это имеет последствия
– Sergiy Kolodyazhnyy
22 July 2018 в 11:14
Убедитесь, что первая строка файла читается:
#! / bin / bash
Если shebang - #! / bin / sh
, вы не должны использовать какие-либо специфичные для bash функции, только функции POSIX. Даже если / bin / sh
является символической ссылкой на bash
, bash будет работать в режиме совместимости POSIX при запуске как sh, отключив некоторые (но не все) bash-функции. [ ! d5]
Вы также должны убедиться, что скрипт является исполняемым, конечно.