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

37
chmod + тихий режим + как заставить код выхода 0 несмотря на ошибку

Возможно ли выполнить chmod и игнорировать ошибку из команды Пример (примечание file.txt не существует, чтобы показать пример) Когда я печатаю chmod 777 file.txt Я получаю ошибку на выходе chmod: cannot access file.txt : no such file or directory Поэтому я добавляю флаг -f к команде следующим...

36
Ошибка синтаксиса Bash, когда «else» следует за пустым предложением «then»

Почему следующий скрипт не выполняется, но выдает синтаксическую ошибку else: LOGS3_DIR=~/logs if [ -d "$LOGS3_DIR" ]; then cd cd "$LOGS3_DIR" echo "$LOGS3_DIR" for filename in `find "." -mtime 1 -type f` do if lsof "$filename" > /dev/null then # file is open else echo "deleting $filename" rm...

36
Почему «sudo su» в сценарии оболочки не запускает остальную часть сценария от имени пользователя root?

Пример сценария может быть следующим: #!/bin/bash sudo su ls /root При использовании ./test.shв качестве обычного пользователя вместо запуска lsот имени суперпользователя и выхода, он переключается в режим root; и когда я выхожу, он выполняется ls /rootкак обычный пользователь. Кто-нибудь может...

36
Как можно запустить несколько программ в фоновом режиме с помощью одной команды?

Как можно запустить несколько программ в фоновом режиме с помощью одной команды? Я попробовал команды ниже, но они не работают. nohup ./script1.sh & && nohup ./script2.sh & -bash: syntax error near unexpected token '&&' nohup ./script1.sh & ; nohup ./script2.sh &...

36
Почему открытие файла происходит быстрее, чем чтение содержимого переменной?

В bashскрипте мне нужны различные значения из /proc/файлов. До сих пор у меня есть десятки строк, которые напрямую копируют файлы: grep -oP '^MemFree: *\K[0-9]+' /proc/meminfo Чтобы сделать это более эффективным, я сохранил содержимое файла в переменной и добавил следующее: a=$(</proc/meminfo)...

35
наложение псевдонима на pushd - это хорошая идея?

Это хорошая идея, чтобы использовать следующий псевдоним: cd() { pushd $1; } в баш? Я думаю, что это было бы очень полезно, так как тогда я могу использовать серию popds вместо cd -одного. Есть ли случай, когда это может быть...

35
Как удалить символ новой строки в конце файла?

Позвольте мне прояснить характер новой строки: $ echo Hello > file1 ; cat file1 Hello $ echo -n Hello > file2 ; cat file2 Hello$ Здесь вы можете увидеть, что file1в конце file2есть символ новой строки, а не имеет. Теперь предположим, что я один file: $ cat file Hello Welcome to Unix $ И я...

35
Как ввести тайм-аут для сценариев оболочки?

Я хочу запустить скрипт оболочки, в котором есть цикл, и он может продолжаться вечно, чего я не хочу. Поэтому мне нужно ввести тайм-аут для всего сценария. Как я могу ввести тайм-аут для всего сценария оболочки под...

34
найди самые частые слова в файле

Я хочу найти, скажем, 10 самых распространенных слов в текстовом файле. Во-первых, решение должно быть оптимизировано для нажатия клавиш (другими словами - мое время). Во-вторых, для исполнения. Вот что у меня есть, чтобы получить топ-10: cat test.txt | tr -c '[:alnum:]' '[\n*]' | uniq -c | sort...

34
Как же !! работать в Bash?

Очень полезно, когда вы забыли sudo в начале своей команды, !!действует как псевдоним предыдущей команды. Пример : $ mv /very/long/path/for/a/protected/sensible/file/caution.h . (...) Permission denined $ sudo !! sudo mv /very/long/path/for(...) . [sudo] password : Как мы называем этот двойной...

33
Передача данных в стандартный поток процесса без последующего EOF

У меня есть исполняемый файл, который запускает интерактивную оболочку пользователя. Я хотел бы при запуске оболочки сначала ввести несколько команд, а затем разрешить пользователю проводить интерактивный сеанс. Я могу сделать это легко используя echo: echo "command 1\ncommand 2\ncommand3" |...

32
getopt, getopts или ручной синтаксический анализ - что использовать, когда я хочу поддерживать как короткие, так и длинные опции?

В настоящее время я пишу скрипт Bash, который имеет следующие требования: он должен работать на самых разных платформах Unix / Linux он должен поддерживать как короткие, так и (GNU) длинные опции Я знаю, что это getoptsбыло бы предпочтительным способом с точки зрения мобильности, но AFAIK это не...