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

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

9
Чому краще використовувати "#! / Usr / bin / env NAME" замість "#! / Path / to / NAME" як мій шебанг?
Я помічаю, що деякі сценарії, які я придбав у інших, мають shebang, #!/path/to/NAMEа інші (використовуючи той самий інструмент, NAME), мають shebang #!/usr/bin/env NAME. Здається, обидва працюють належним чином. У навчальних посібниках (наприклад, на Python), здається, є припущення, що останній шебанг краще. Але я не зовсім розумію, чому це так. Я …

3
Використання "$ {a: -b}" для призначення змінних у скриптах
Я переглянув кілька сценаріїв, які писали інші люди (зокрема Red Hat), і багато їх змінних присвоюються за допомогою наступних позначень VARIABLE1="${VARIABLE1:-some_val}" або деяких розширень інших змінних VARIABLE2="${VARIABLE2:-`echo $VARIABLE1`}" Який сенс використовувати цю позначення, а не просто оголошувати значення безпосередньо (наприклад, VARIABLE1=some_val)? Чи є корисні для цього позначення або можливі помилки, …

14
У Bash, коли до псевдоніму, коли до сценарію та коли писати функцію?
Щоб задати це питання мені знадобилося майже 10 років використання Linux. Все це було пробними помилками та випадковим веб-серфінгом пізньої ночі. Але людям не потрібно для цього 10 років. Якби я тільки починав роботу з Linux, я хотів би знати: Коли робити псевдонім, коли сценарій і коли написати функцію? Що …

5
Чому мій сценарій оболонки задавлюється пробілом або іншими спеціальними символами?
Або вступне керівництво з надійної обробки файлів і інших рядків, що передаються в скриптах оболонки. Я написав сценарій оболонки, який працює добре протягом більшої частини часу. Але він задавлюється деякими входами (наприклад, для деяких імен файлів). У мене виникла така проблема, як: У мене є ім'я файлу, що містить пробіл …

23
Як я можу отримати свою зовнішню IP-адресу в сценарії оболонки?
Мені потрібно знайти свою зовнішню IP-адресу зі скрипту оболонки. На даний момент я використовую цю функцію: myip () { lwp-request -o text checkip.dyndns.org | awk '{ print $NF }' } Але це залежить від того perl-libwww, perl-html-format, perl-html-treeвстановлений. Якими іншими способами можна отримати зовнішній IP?
273 linux  shell-script  ip 

3
Які символи мені потрібні для виходу під час використання sed у скрипті sh?
Візьміть такий сценарій: #!/bin/sh sed 's/(127\.0\.1\.1)\s/\1/' [some file] Якщо я спробую запустити це в sh( dashтут), воно не вдасться через дужки, які потрібно уникнути. Але мені не потрібно уникати самих відхилень (між октетами, або в \sабо \1). Яке правило тут? А як щодо того, коли мені потрібно використовувати {...}або [...]? …

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

8
Як я можу перевірити, чи змінна порожня або містить лише пробіли?
Наступний синтаксис bash перевіряє, чи paramвін не порожній: [[ ! -z $param ]] Наприклад: param="" [[ ! -z $param ]] && echo "I am not zero" Немає результату та його штрафу. Але коли paramпорожньо, окрім одного (або більше) символів пробілу, справа в іншому: param=" " # one space [[ ! …

3
Очистіть вміст файлу
Мені відомо три способи видалення всіх записів з файлу. Вони є >filename touch filename filename < /dev/null З цих трьох я зловживаю >filenameнайбільше, оскільки для цього потрібна найменша кількість натискань клавіш. Однак я хотів би знати, який найбільш ефективний із цих трьох (якщо є якісь більш ефективні методи) щодо великих …

3
Вплив на безпеку забуття процитувати змінну в оболонках bash / POSIX
Якщо ви деякий час стежите за unix.stackexchange.com, ви, мабуть, сподіваєтесь, що до цього часу знаєте, що залишення змінної без котирування у контексті списку (як у echo $var) в оболонках Bourne / POSIX (zsh є винятком) має дуже особливе значення і не слід робити, якщо у вас є дуже вагомі причини. …


12
Як змінити розширення кількох файлів?
Я хотів би змінити розширення файлу з *.txtна *.text. Я спробував скористатися basenameкомандою, але у мене виникли проблеми зі зміною декількох файлів. Ось мій код: files=`ls -1 *.txt` for x in $files do mv $x "`basename $files .txt`.text" done Я отримую цю помилку: basename: too many arguments Try basename --help' …



10
Як обрізати пробіли та пробіли з кожного рядка деякого результату?
Я хотів би видалити всі провідні та кінцеві пробіли та вкладки з кожного рядка у висновку. Чи є такий простий інструмент, як trimя міг би передати свій вихід? Приклад файлу: test space at back test space at front TAB at end TAB at front sequence of some space in the …

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