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

Вопросы о сценариях оболочки, исполняемых файлах, которые интерпретируются оболочкой (bash, zsh и т. Д.).


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]+' Вместо того, чтобы …

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

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
Ошибка синтаксиса 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 "$filename" fi done …

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


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

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

2
Лучше использовать $ (pwd) или $ PWD?
Я столкнулся BASEDIR=$(pwd)в сценарии. Есть ли какие-либо преимущества или недостатки по сравнению с использованием BASEDIR="$PWD", которые $PWDмогут быть перезаписаны?
35 shell-script  pwd 


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

1
Как же !! работать в Bash?
Очень полезно, когда вы забыли sudo в начале своей команды, !!действует как псевдоним предыдущей команды. Пример : $ 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.