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

Вопросы, специфичные для GNU Bourne Again SHell, в отличие от других оболочек Bourne / POSIX. Для вопросов о оболочках Unix в целом используйте вместо этого тег / shell.

5
Как выйти из скрипта в условном выражении?
Я пишу сценарий Bash, где я хочу выйти, если пользователь не root. Условно работает нормально, но скрипт не выходит. [[ `id -u` == 0 ]] || (echo "Must be root to run script"; exit) Я пытался использовать &&вместо, ;но ни одна из них не работает.

3
Закрытие файлового дескриптора,> & - vs <& -
В учебнике bash, который я читаю, говорится, что если вы откроете дескриптор файла для чтения, т.е. exec 3&lt; echolist Тогда вы должны закрыть это так, exec 3&lt;&amp;- Однако, если вы открываете дескриптор файла для записи, он должен быть закрыт следующим образом: exec 3&gt;&amp;- Тем не менее, когда я смотрю в …

2
Bash: Как прочитать одну строку за раз из вывода команды?
Я пытаюсь прочитать вывод команды в Bash, используя while loop. while read -r line do echo "$line" done &lt;&lt;&lt; $(find . -type f) На выходе я получил ranveer@ranveer:~/tmp$ bash test.sh ./test.py ./test1.py ./out1 ./test.sh ./out ./out2 ./hello ranveer@ranveer:~/tmp$ После этого я попробовал $(find . -type f) | while read -r …
49 bash  shell  find  pipe 


5
Как выполнить последовательные команды из истории?
Предположим, я хочу выполнить последовательность из четырех команд, которые я выполнял ранее. Если первый - 432 в истории команд, то я мог бы сделать: $ !432; !433; !434; !435 Мне любопытно, есть ли более эффективный способ сделать это?

1
В чем разница между кавычками «…», «…», $ «…» и $ «…»?
Иногда я вижу сценарии использовать все эти различные способы процитировать текст: "...", '...', $'...', и $"...". Почему используется так много разных цитат? Они ведут себя по-разному или влияют на то, что я могу сделать внутри них?

1
Почему bash не хранит команды, начинающиеся с пробелов?
Если я выполняю последовательность команд, таких как: $ ls $ grep abc file.txt а затем используйте клавишу со стрелкой вверх, чтобы получить предыдущий, терминал покажет последний cmd (который grepздесь) Но если я сделаю что-то вроде этого: $ ls $ grep abc file.txt где grepпредшествует пробел, нажатие вверх дает ls, а …

8
cron игнорирует переменные, определенные в «.bashrc» и «.bash_profile»
Я определил переменную "SHELL" в файле / etc / crontab: [martin@martin ~]$ grep SHELL /etc/crontab SHELL=/usr/local/bin/bash [martin@martin ~]$ file /usr/local/bin/bash /usr/local/bin/bash: ELF 32-bit LSB executable, Intel 80386, version 1 (FreeBSD), dynamically linked (uses shared libs), for FreeBSD 8.0 (800107), stripped [martin@martin ~]$ Кроме того, все мои скрипты в файле / …
49 bash  cron 

4
Запросить пароль sudo и программно повысить привилегии в bash-скрипте?
В настоящее время я работаю над сценарием bash, который устанавливает и настраивает различные программы в стандартной системе Linux (в настоящее время - Ubuntu). Поскольку он устанавливает программы и копирует несколько файлов в различные папки, требующие повышенных привилегий, я уже выполнил стандартный «Мне нужны повышенные привилегии» -and-exit. Однако я хотел бы, …
49 bash  sudo 



2
подавить сообщения stderr в скрипте bash
Рассмотрим следующее (слегка глупое) имя сценария 'test1.sh': #/bin/bash # sleep 10 &amp; echo sleep pid = $! pkill sleep Когда я запускаю его, я получаю не только вывод echo, но и сообщение bash о смерти сна на stderr: $ ./test1.sh sleep pid = 3551 ./test1.sh: line 5: 3551 Terminated sleep …


7
почему ls -d также перечисляет файлы и где это задокументировано?
при указании ls --directory a*следует указывать только каталоги, начинающиеся сa* НО это перечисляет файлы И каталоги, начинающиеся с a Вопросы : где я могу найти какую-то документацию по этому вопросу, кроме как manи infoгде, я думаю, я внимательно посмотрел? это работает только в BASH?
48 bash  shell  ls  wildcards  options 

4
Как я могу полностью удалить элемент из массива?
unset array[0]удаляет элемент, но все же, если я это сделаю, echo ${array[0]}я получаю нулевое значение, более того, есть другие способы сделать это, но если элемент массива содержит пробелы, как показано ниже array[0]='james young' array[1]='mary' array[2]='randy orton' но они также не в состоянии сделать работу array=${array[@]:1} #removed the 1st element теперь …

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.