Запитання з тегом «bash»

Для запитань щодо сценаріїв, написаних для командної оболонки Bash. Для скриптів оболонки з помилками / синтаксичними помилками, будь ласка, перевірте їх у програмі shellcheck (або на веб-сервері шелчек за адресою https://shellcheck.net) перед публікацією тут. Питання щодо інтерактивного використання Bash, швидше за все, будуть теми на Super User, ніж на переповнення стека.



8
Як працює «кішка << EOF» в башті?
Мені потрібно було написати сценарій для введення багаторядкового введення в програму ( psql). Трохи погуглившись, я виявив такі синтаксичні роботи: cat &lt;&lt; EOF | psql ---params BEGIN; `pg_dump ----something` update table .... statement ...; END; EOF Це правильно будує багаторядковий рядок (від включно BEGIN;до END;включно) і передає його як вхід …
629 linux  bash  scripting  heredoc 

24
Перевірте, чи потрібно тягнути в Git
Як перевірити, чи змінився віддалений сховище, і мені потрібно витягнути? Зараз я використовую цей простий сценарій: git pull --dry-run | grep -q -v 'Already up-to-date.' &amp;&amp; changed=1 Але він досить важкий. Чи є кращий спосіб? Ідеальним рішенням було б перевірити всі віддалені гілки та повернути назви змінених гілок та кількість …
622 git  bash  shell 

14
Як вбити всі процеси із заданою частковою назвою? [зачинено]
Зачинено. Це питання не відповідає вказівкам щодо переповнення стека . Наразі відповіді не приймаються. Хочете вдосконалити це питання? Оновіть питання, щоб воно було тематичним для переповнення стека. Закрито 4 місяці тому . Я хочу знищити всі процеси, які я отримую: ps aux | grep my_pattern Як це зробити? Це не …
622 linux  bash  posix 


19
Bash інструмент для отримання n-го рядка з файлу
Чи існує "канонічний" спосіб цього зробити? Я використовував head -n | tail -1цей трюк, але мені було цікаво, чи є інструмент Bash, який спеціально витягує рядок (або діапазон рядків) з файлу. Під "канонічною" я маю на увазі програму, основною функцією якої є це.
604 bash  shell  unix  awk  sed 

30
Як перевірити, чи є змінною число в Bash?
Я просто не можу зрозуміти, як переконатися, що аргумент, переданий моєму сценарію, є числом чи ні. Все, що я хочу зробити, - це щось подібне: test *isnumber* $1 &amp;&amp; VAR=$1 || echo "need a number" Будь-яка допомога?
598 linux  bash  shell 

14
sudo echo “щось” >> / etc / privilegedFile не працює
Це досить просте запитання, принаймні, схоже, як і слід, щодо дозволів sudo в Linux. Буває дуже багато випадків, коли я просто хочу додати щось до /etc/hostsподібного файлу, але в кінцевому підсумку не в змозі, тому що обидва &gt;і &gt;&gt;заборонено, навіть із root. Чи є якийсь спосіб зробити цю роботу, не …

6
Захоплення кількох лінійних виходів у змінну Bash
У мене є сценарій "myscript", який видає наступне: abc def ghi іншим сценарієм я закликаю: declare RESULT=$(./myscript) і $RESULTотримує значення abc def ghi Чи є спосіб зберегти результат або з новими рядками, або з символом '\ n', щоб я міг вивести його за допомогою ' echo -e'?
583 bash  variables 

8
Чи є подвійні квадратні дужки [[]] кращі над одинарними квадратними дужками [] у Bash?
Нещодавно в огляді коду співробітник заявив, що [[ ]]перевагу [ ]конструкції слід використовувати в подібних конструкціях if [ "`id -nu`" = "$someuser" ] ; then echo "I love you madly, $someuser" fi Він не міг дати обґрунтування. Чи є такий?

8
Як зробити логічну операцію АБО в сценарії оболонок
Я намагаюся зробити просту перевірку стану, але це, здається, не працює. Якщо $#дорівнює 0або більше, ніж 1привітатися. Я пробував наступний синтаксис без успіху: if [ "$#" == 0 -o "$#" &gt; 1 ] ; then echo "hello" fi if [ "$#" == 0 ] || [ "$#" &gt; 1 ] …
571 bash  unix  if-statement  sh 

10
Як встановити поточний робочий каталог в каталог сценарію?
Я пишу баш сценарій. Мені потрібен поточний робочий каталог, щоб завжди бути каталогом, в якому знаходиться сценарій. Поведінка за замовчуванням полягає в тому, що поточний робочий каталог у скрипті - це оболонка, з якої я його запускаю, але я не хочу цього поведінки.
569 bash  path  scripting 


11
Як я можу додати числа в сценарії Bash?
У мене є цей сценарій Bash, і у мене виникла проблема в рядку 16. Як я можу взяти попередній результат рядка 15 і додати його до змінної у рядку 16? #!/bin/bash num=0 metab=0 for ((i=1; i&lt;=2; i++)); do for j in `ls output-$i-*`; do echo "$j" metab=$(cat $j|grep EndBuffer|awk '{sum+=$2} …

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