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

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

3
Шебанг, починаючи з "//"?
Мене бентежить наступний скрипт ( hello.go). //usr/bin/env go run $0 $@ ; exit package main import "fmt" func main() { fmt.Printf("hello, world\n") } Він може виконати. (на MacOS X 10.9.5) $ chmod +x hello.go $ ./hello.go hello, world Я не чув про shebang починаючи з //. І він все ще …

3
Розуміння "IFS = read -r рядок"
Я, очевидно, розумію, що можна додати значення внутрішній змінній роздільника полів. Наприклад: $ IFS=blah $ echo "$IFS" blah $ Я також розумію, що read -r lineзбереже дані з stdinзмінної з ім'ям line: $ read -r line <<< blah $ echo "$line" blah $ Однак як команда може призначити змінне значення? …

12
Навіщо писати весь сценарій bash у функціях?
На роботі я часто пишу баш сценарії. Мій керівник запропонував розбити весь сценарій на функції, подібно до наступного прикладу: #!/bin/bash # Configure variables declare_variables() { noun=geese count=three } # Announce something i_am_foo() { echo "I am foo" sleep 0.5 echo "hear me roar!" } # Tell a joke walk_into_bar() { …

6
Різниця між ls -l і ll?
Я відносно новачок у програмуванні в цілому, і деякі навчальні посібники говорили мені використовувати ls -lдля перегляду файлів у каталозі, а інші говорили ll. Я знаю, що lsце короткий список, але чи є різниця між двома іншими?
59 shell  shell-script  ls 

4
Що є стандартом для відступу в скриптах оболонки? [зачинено]
Спільнота Java використовує 4 пробіли як одиницю відступу. 1 спільнота Ruby використовує 2 пробіли, що, як правило, узгоджено. 2 Що є стандартом для відступу в скриптах оболонки? 2 або 4 пробіли або 1 вкладка?

4
Отримати шлях поточного сценарію при виконанні через симпосилання
У мене є утиліта, що складається з декількох каталогів з деякими скриптами bash та допоміжними файлами, які будуть розгорнуті на декількох машинах, можливо, в іншому каталозі на кожній машині. Сценарії повинні мати можливість посилатися на шляхи відносно себе, тому мені потрібно мати можливість отримати шлях до файлу, який зараз виконується. …

6
Показуйте рік, перераховуючи файли в поточному каталозі
Я працюю на сервері Red Hat. Команди ls -lабо llнадання мені дати та часу у форматі +"%b %-d %H:%M". Я хочу перерахувати файли таким чином, коли рік, коли кожен створений файл буде відображатися в межах дати. Як це можливо?


6
Як я можу змусити bash вийти з ладу backtick аналогічно шляху pipefail?
Тому я люблю загартовувати мої сценарії bash там, де можу (а коли не в змозі делегувати мову, подібну до Python / Ruby), щоб помилки не залишалися без уваги. У цьому ключі у мене є строгий.sh, який містить такі речі, як: set -e set -u set -o pipefail І джерело його …

10
bash: перевірити, чи встановлено $ WORD
Я шукаю конструкцію bash, щоб вирішити, чи є змінна $WORDодним із визначених слів. Мені потрібно щось подібне: if "$WORD" in dog cat horse ; then echo yes else echo no fi Баш має таку конструкцію? Якби ні, що було б найближчим?

6
Найкращий спосіб слідкувати за журналом та виконувати команду, коли в журналі з'являється якийсь текст
У мене є серверний журнал, який виводить певний рядок тексту у його файл журналу, коли сервер працює. Я хочу виконати команду, як тільки сервер піднявся, а отже, зробити щось на кшталт наступного: tail -f /path/to/serverLog | grep "server is up" ...(now, e.g., wget on server)? Який найкращий спосіб зробити це?

6
Об’єднання двох змінних із підкресленням
Мені потрібно об'єднати дві змінні, щоб створити ім'я файлу, що має підкреслення. Назвемо мої змінні $FILENAMEі $EXTENSIONде ім'я файлу зчитується з файлу. FILENAME=Hello EXTENSION=WORLD.txt Тепер ... Я безрезультатно намагався: NAME=${FILENAME}_$EXTENSION NAME=${FILENAME}'_'$EXTENSION NAME=$FILENAME\\_$EXTENSION Я завжди отримую якийсь дивний вихід. Зазвичай підкреслюється спочатку. Мені це потрібно echo $NAME Hello_WORLD.txt

5
Розщеплення рядка за першим появою роздільника
У мене є рядок у наступному форматі id;some text here with possible ; inside і хочете розділити його на 2 рядки, спочатку виникнення ;. Отже, повинно бути: idіsome text here with possible ; inside Я знаю, як розділити рядок (наприклад, за допомогою cut -d ';' -f1), але вона розділиться на …

3
Як я можу зробити змінні середовища "експортованими" в сценарій оболонки?
У мене є кілька облікових записів Amazon EC2 і хочу швидко перемикати змінні, наприклад $EC2_HOME, за допомогою скрипту. У мене встановлений такий сценарій оболонки: #!/bin/sh export EC2_HOME=/home/me/.ec2 echo $EC2_HOME Коли я запускаю сценарій, я знаю, що EC2_HOMEце встановлено, але я думав, що за допомогою exportцього сценарію змінна палиця після завершення …


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