сценарий оболочки для проверки условия в переданной строке

Все клавиши привязки GNU Screen работают точно так же в byobu.

Чтобы выбрать окно , просто нажмите Ctrl + a , затем Window number

Обратите внимание, что Ctrl + a конфликтует с привязкой клавиш GNU Emacs, поэтому byobu попросит вас выбрать поведение.

В любом случае можно использовать Ctrl + a , затем a для перехода к началу строки в режиме привязки клавиш Emacs.

-121--161032-

Установка gnome-tweak-tool для включения и выключения значков на рабочем столе, включая корневой рабочий стол. Ubuntu-tweak более популярен, но не может найти пакет. Google "gnome tweak."

-121--243707-

Очевидно, что мой веб-сервер не имеет разрешения на создание каталогов - и, вероятно, не на создание файлов - в public_html или его подкаталогах (например, некоторые каталоги в ~/public _ html/wordpress).

Это действительно очень вероятно, что проблема. Однако вы не должны запираться из справочника: есть много вариантов, который позволяет вам держать файлы в том справочнике и позволять веб-серверу писать ему:

  1. Помещенный себя в www-данные группа: sudo gpasswd-a $ (whoami) www-данные , и затем изменяют группу public_html справочника: sudo, показанный-R $ (whoami): www-данные ~/public_html . Таким образом вы и веб-сервер будете совместно использовать этот каталог.

  2. Использование липкого бита: это позволит веб-серверу записывать файлы в каталог, а также переносить группу папки, позволяя по-прежнему получать доступ к каталогу выгрузки в качестве пользователя: chmod g + rws, o + rwx ~/public _ html/wordpress/wp-content .

  3. Используйте списки ACL для указания расширенных разрешений, позволяющих серверу записывать данные в каталог setfacl-m u: www-data: rwx ~/public _ html/wordpress/wp-content . Если вы идете по этому маршруту, я рекомендую прочитать руководство для ACL, поскольку они достаточно мощные, и с ними можно многое сделать.

Предупреждение

Обратите внимание, что ни одно из вышеперечисленных решений не подходит для производственной среды, поскольку все они позволят любому пользователю на сервере, которому разрешено запускать PHP-код, также иметь разрешения веб-сервера и, таким образом, могут удалить вредоносные файлы в каталоге загрузки. Убедитесь, что только делает каталог uploads доступным для записи, а также установите .htaccess, который запрещает выполнение кода из этого каталога. Для производственных серверов я рекомендую запускать PHP в качестве пользователя системы пользователя, используя suexec, php-fpm или любой другой способ выполнения кода PHP вне веб-сервера.

0
25.09.2017, 20:06
2 ответа

Цитирую.

В сценарии используйте "$1", а не просто $1.

В командной строке используйте

./script '*(ontehu'

вместо

./script *(ontehu

  • ./script.sh (abcЭто синтаксическая ошибка в грамматике оболочки.

  • ./script.sh &&Это заставляет оболочку думать, что в командной строке есть условное И, и она ожидает что-то в правой части оператора &&.

  • ./script.sh &abcЭто две команды :./script, запущенные как фоновый процесс (с помощью &), и команда abc.

Во всех этих случаях аргумент должен быть заключен в (одинарные кавычки, в идеале, если вам не нужно, чтобы оболочка вставляла значение переменной оболочки, и в этом случае он должен быть заключен в двойные кавычки ).


Ваш сценарий:

if [[ $1 =~ ^[A-Za-z_]+$ ]]; then
  echo it matches
else
  echo does_not match
fi

Цитата$1:

if [[ "$1" =~ ^[A-Za-z_]+$ ]]; then
  echo it matches
else
  echo does_not match
fi

Разрешить использование цифр в конце значения:

if [[ "$1" =~ ^[A-Za-z_][A-Za-z0-9_]+$ ]]; then
  echo it matches
else
  echo does_not match
fi

Правильно сообщайте об ошибках (это лишнее):

if [[ "$1" =~ ^[A-Za-z_][A-Za-z0-9_]+$ ]]; then
  printf '"%s" is a valid variable name\n' "$1"
else
  printf '"%s" is not a proper variable name\n' "$1" >&2
  exit 1
fi
2
28.01.2020, 02:24

Это потому, что это зарезервированные символы.

& означает выполнение команды в фоновом режиме

*разрешается во все файлы/каталоги в фактическом каталоге, которые затем передаются в качестве аргументов

()используется для предпочтения порядка команд или объявлений функций

Если вы хотите, чтобы в строке были такие символы, поместите их в кавычки " " или ' '

1
28.01.2020, 02:24

Теги

Похожие вопросы