Запитання з тегом «shell-script»

Запитання щодо скриптів оболонки, виконуваних файлів, які інтерпретуються оболонкою (bash, zsh тощо).

12
Додайте в роздільник тисячі
В пітоні re.sub(r"(?<=.)(?=(?:...)+$)", ",", stroke ) Розділити число на триплети, наприклад: echo 123456789 | python -c 'import sys;import re; print re.sub(r"(?<=.)(?=(?:...)+$)", ",", sys.stdin.read());' 123,456,789 Як зробити те ж саме з bash / awk?

3
`Помилка синтаксису:“ (“несподівано” під час створення масиву
У мене є два (Debian) Linux-сервери. Я створюю сценарій оболонки. На першому я створюю масив таким чином: #!/bin/bash target_array=( "/home/user/direct/filename -p123 -r" ) Це прекрасно працює. Але коли я запускаю це на іншому сервері, я отримую: Syntax error: "(" unexpected Наскільки я можу сказати, обидва сервери однакові. Чи може хтось …

3
Чому відкриття файлу швидше, ніж читання змінного вмісту?
У bashсценарії мені потрібні різні значення з /proc/файлів. Дотепер у мене є десятки рядків, що чіпляють файли прямо так: grep -oP '^MemFree: *\K[0-9]+' /proc/meminfo Намагаючись зробити це більш ефективним, я зберегла вміст файлу в змінній і перехопила, що: a=$(</proc/meminfo) echo "$a" | grep -oP '^MemFree: *\K[0-9]+' Замість того, щоб відкривати …

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

4
Чому "sudo su" в сценарії оболонки не запускає решту сценарію як корінь?
Зразок сценарію може бути наступним: #!/bin/bash sudo su ls /root Використовуючи ./test.shяк звичайного користувача, замість цього запустіть lsяк суперкористувача та вийдіть, він переходить на root; і коли я виходжу з системи, він виконується ls /rootяк звичайний користувач. Чи може хтось розповісти мені про механізм щодо цього?
36 shell  shell-script  sudo  root  su 

4
Помилка синтаксису Bash, коли "else" слідує за порожнім пунктом "тоді"
Чому наступний скрипт не виконується, але дасть синтаксичну помилку 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 "$filename" fi done …

2
Чи потрібні лапки для призначення місцевих змінних?
Чи можу я безпечно опустити цитати в правій частині місцевого завдання? function foo { local myvar=${bar} stuff() } Мене в основному цікавить bash, але будь-яка інформація про кутові корпуси в інших оболонках вітається.


5
Як запровадити тайм-аут для сценаріїв оболонок?
Я хочу запустити скрипт оболонки, який має цикл у ньому, і він може тривати назавжди, чого я не хочу робити. Тому мені потрібно ввести тайм-аут для всього сценарію. Як я можу ввести тайм-аут для всього сценарію оболонки під SuSE?

4
псевдонім CD на pushd - це гарна ідея?
Чи корисно використовувати наступний псевдонім: cd() { pushd $1; } в баш? Я думаю, що це було б дуже корисно, оскільки тоді я можу використовувати серію popds, а не один cd -раз. Чи є випадок, коли це може бути проблемою?



4
Як видалити символ нового рядка в кінці файлу?
Дозвольте мені зрозуміти про персонаж нового рядка: $ echo Hello > file1 ; cat file1 Hello $ echo -n Hello > file2 ; cat file2 Hello$ Тут ви бачите, що file1нове значення має в кінці, тоді як file2ні. Тепер припустимо, що я один file: $ cat file Hello Welcome to …

1
Як !! працювати в баш?
Дуже корисно, коли ви забудете судо на початку своєї команди, !!діє як псевдонім попередньої команди. Приклад: $ mv /very/long/path/for/a/protected/sensible/file/caution.h . (...) Permission denined $ sudo !! sudo mv /very/long/path/for(...) . [sudo] password : Як ми називаємо цей подвійний !!трюк? Дослідження через Інтернет важкі через це. Як це працює ? Я …


Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.