Вопросы с тегом «shell»

240
Как я могу проверить, является ли переменная пустой или содержит только пробелы?

Следующий синтаксис bash проверяет, paramне является ли он пустым: [[ ! -z $param ]] Например: param="" [[ ! -z $param ]] && echo "I am not zero" Нет выхода и его хорошо. Но когда paramпусто, за исключением одного (или более) пробела, тогда дело обстоит иначе: param=" " # one space [[ ! -z...

206
Последствия для безопасности: забыть заключить переменную в оболочку bash / POSIX

Если вы следили за unix.stackexchange.com какое-то время, вы должны надеяться, что уже знаете, что оставление переменной без кавычек в контексте списка (как в echo $var) в оболочках Bourne / POSIX (исключение zsh) имеет очень особое значение и не должно быть сделано, если у вас нет очень веских...

204
Почему * не * разбирать `ls` (и что вместо этого делать)?

Я постоянно вижу ответы, цитирующие эту ссылку с указанием "Не разбирайся ls!" Это беспокоит меня по нескольким причинам: Кажется, что информация в этой ссылке была принята оптом с небольшим вопросом, хотя я могу выделить по крайней мере несколько ошибок при случайном чтении. Также кажется, что...

196
Почему использование цикла оболочки для обработки текста считается плохой практикой?

Является ли использование цикла while для обработки текста вообще плохой практикой в ​​оболочках POSIX? Как отметил Стефан Шазелас , некоторые из причин, по которым не используется оболочка, - это концептуальность , надежность , удобочитаемость , производительность и безопасность . Этот ответ...

191
Как получить имя дистрибутива и номер версии в простом сценарии оболочки?

Я работаю над простым bash-скриптом, который должен быть в состоянии работать в дистрибутивах Ubuntu и CentOS (поддержка Debian и Fedora / RHEL была бы плюсом), и мне нужно знать имя и версию дистрибутива, в котором работает скрипт ( для того, чтобы вызвать конкретные действия, например, создание...

187
Как я могу отправить стандартный вывод нескольким командам?

Есть некоторые команды, которые фильтруют или воздействуют на ввод, а затем передают его как вывод, как я обычно думаю, stdout- но некоторые команды просто берут stdinи делают то, что с ним делают, и ничего не выводят. Я знаком с OS X и так есть два , которые приходят на ум сразу же являются...

185
Разрешить setuid для сценариев оболочки

setuidБит разрешение говорит Linux для запуска программы с эффективным идентификатором пользователя владельца вместо исполнителя: > cat setuid-test.c #include <stdio.h> #include <unistd.h> int main(int argc, char** argv) { printf("%d", geteuid()); return 0; } > gcc -o setuid-test...

183
Как я могу преобразовать метку времени эпохи в читаемый человеком формат на компьютере?

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

182
Предварительная отметка времени для каждой строки вывода команды

Я хочу добавить метку времени к каждой строке вывода команды. Например: foo bar baz станет [2011-12-13 12:20:38] foo [2011-12-13 12:21:32] bar [2011-12-13 12:22:20] baz ... где префикс - это время, когда была напечатана строка. Как мне этого...

173
Как контролировать использование процессора / памяти одного процесса?

Я хотел бы контролировать использование памяти одним процессором / процессором в режиме реального времени. Аналогично, topно нацелено только на один процесс, предпочтительно с каким-то графом...

170
В чем разница между / sbin / nologin и / bin / false

Технически, если только pamвы не настроили проверку вашей оболочки, pam_shellsни один из них не может фактически предотвратить ваш вход в систему, если вы не в оболочке. В моей системе они даже разных размеров, поэтому я подозреваю, что они действительно что-то делают. Так в чем же разница? почему...

167
Как приостановить и вывести фоновый процесс на передний план

У меня есть процесс, первоначально запущенный на переднем плане. Я приостановил на Ctrl+ Z, а затем возобновил его работу в фоновом режиме bg <jobid>. Интересно, как приостановить процесс, работающий в фоновом режиме? Как вывести фоновый процесс на передний план? Редактировать: Процесс...

164
Запустите команду, которая затенена псевдонимом

Допустим, у меня есть следующий псевдоним в bash alias ls='ls --color=auto'- и я хочу назвать обычный lsбез опций. Единственный способ сделать это - unalias, выполнить команду, а затем снова псевдоним? Или есть какой-нибудь изящный трюк или обходной...