Я не знаю, как выделить день в календаре года cal -y
только регулярными выражениями, но причина, по которой ваш пример не работал для однозначных дат , заключается в том, что $ (дата +% е)
добавляет космос к
Это будет работать:
cal | grep --color -EC6 "\b$(date +%e | sed "s/ //g")"
-121--291798-
С socat
на сервере:
socat tcp-listen:8001,reuseaddr,fork tcp:localhost:8000
По умолчанию socat
прослушивает порт TCP 8001 на любом IPv4 или IPv6 адресе (если поддерживается) на компьютере. Вы можете ограничить его IPv4/6, заменив tcp-listen
на tcp4-listen
или tcp6-listen
, или на определенный локальный адрес, добавив , bind = that-address
.
Для подключения сокета, к которому выполняется прокси, можно использовать любой адрес вместо localhost
и заменить tcp
на tcp4
или tcp6
, если требуется ограничить разрешение адреса IPv4 или IPv6 адресами.
Обратите внимание, что для сервера, прослушивающего порт 8000, подключение будет отображаться как исходящее от прокси (в случае localhost
, то есть localhost
), а не от исходного клиента. Необходимо использовать DNAT-подходы (но которые требуют привилегий суперпользователя), чтобы сервер мог определить, кто является клиентом.
-121--4952-
Грязное решение выглядит следующим образом:
boolRememberNext=0
rememberString=""
for arg in $*; do
if [ ${boolRememberNext} -eq 1 ]; then
rememberString="${rememberString} ${arg}"
fi
if [ "${arg}" = "-name" ]; then
boolRememberNext=1
else
boolRememberNext=0
fi
done
echo ${rememberString} | while read filemask; do
unquotedFile=$(echo "$filemask" | tr -d "'")
ls -R1 ~/homedir/ | grep ":" | cut -d: -f1 | while read dir; do
ls ${dir}/unquotedFile
done
done
Почему оно грязное?
Что можно сделать для улучшения решения?
Вы можете хранить промежуточные результаты в локальных var, улучшить обработку специальных символов и проверить синтаксис.
Можно также выполнить ls ~/homedir/*
и добавить звездочку к пути поиска, пока файлы не будут найдены. Разбор всех файлов с помощью какого-либо фильтра (awk?). Проверьте найденные файлы, что они являются файлами, а не каталогами.
Я нашел способ, с помощью которого -не привилегированный пользователь может запустить x11vnc
без необходимости устанавливать или настраивать что-либо еще. Возможно, это не самый чистый способ сделать это, но он работает.
Я создал скрипт, который запускается при запуске:
#!/bin/sh
cd /home/amorimph/
while true; do
if [ -e startVNC ]
then
x11vnc -display :0
rm startVNC
fi
done
Он проверяет каталог пользователя на наличие файла «startVNC». Затем, когда я вхожу в систему как этот не -пользователь root, touch startVNC
запускается x11vnc
, и файл удаляется после завершения процесса.