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

Оболонка - це інтерфейс командного рядка Unix. Ви можете вводити команди в оболонці інтерактивно або писати сценарії для автоматизації завдань. Використовуйте цей тег для питань, що стосуються / bin / sh та найбільш сумісних оболонок (ash, bash, ksh, zsh,…). Для скриптів оболонок з помилками перевірте їх на http://shellcheck.net перед публікацією тут.

4
"Запустити будь-яку команду, яка передасть недовірені дані командам, які інтерпретують аргументи як команди"
З посібника з findutils: Наприклад такі конструкції, як ці дві команди # risky find -exec sh -c "something {}" \; find -execdir sh -c "something {}" \; дуже небезпечні. Причиною цього є те, що "{}" розширено на ім'я файлу, яке може містити крапку з комою або інші символи, спеціальні для …
18 shell 

1
bash змінює свою поведінку залежно від значення змінної "IFS"
Коли я встановлюю IFSзмінну на пробіл, bashрозглядає кілька пробілів як один простір ( myprogramце програма, яка друкує отримані аргументи командного рядка): IFS=" " x="hello hi world" ./myprogram $x argv[1] = hello argv[2] = hi argv[3] = world Але коли я встановлюю IFSзмінну комою, bashне трактує кілька коми як одну кому: …
18 bash  shell 

3
Чому параметри в змінній, що котирується, виходять з ладу, але працюють, коли вони не мають котирування?
Я читав про це, я повинен навести змінні в bash, наприклад "$ foo" замість $ foo. Однак під час написання сценарію я знайшов випадок, коли він працює без лапок, але не з ними: wget_options='--mirror --no-host-directories' local_root="$1" # ./testdir recieved from command line remote_root="$2" # ftp://XXX recieved from command line relative_path="$3" …


3
Значення ["$ {1: 0: 1}" = '-']
У мене є наступний сценарій для запуску процесу MySQL: if [ "${1:0:1}" = '-' ]; then set -- mysqld_safe "$@" fi if [ "$1" = 'mysqld_safe' ]; then DATADIR="/var/lib/mysql" ... Що означає 1: 0: 1 у цьому контексті?
18 linux  bash  shell 

2
Чи є щось подібне до "split ()" JavaScript в оболонці?
Використовувати split()в JavaScript дуже просто, щоб перебити рядок у масив. Що з скриптом оболонки? Скажіть, я хочу це зробити: $ script.sh var1_var2_var3 Коли користувач надає такий рядок var1_var2_var3для script.sh, всередині скрипту він перетворить рядок у масив на зразок array=( var1 var2 var3 ) for name in ${array[@]}; do # some …

4
Використовуйте #! / Bin / sh або #! / Bin / bash для сумісності Ubuntu-OSX та простоти використання та POSIX
Я знаю, що я можу використовувати як перший рядок сценаріїв, щоб викликати потрібну оболонку. Буде #!/bin/shрекомендовано, якщо сумісність з усіма системами Unix є абсолютною вимогою? У моєму випадку єдині ОС, які мене хвилюють, - це Ubuntu (Debian) та OSX. Враховуючи це, чи можу я використовувати #!/bin/bashі бути впевненим, що він …
18 bash  shell  ubuntu  osx  posix 

2
Чому в нижній частині корпусу відображається змінна?
Книга Learning Bash згадує про те, що субшалл успадкує лише змінні середовища та дескриптори файлів тощо, і що він не буде успадковувати змінні, які не експортуються: $ var=15 $ (echo $var) 15 $ ./file # this file include the same command echo $var $ Як я знаю, оболонка створить дві …
18 bash  shell  subshell 


2
Коли важливо писати портативні сценарії?
Більшість кодів, які я пишу, є в PHP. Нещодавно я почав вивчати сценарії оболонок. Більшість ресурсів та навчальних посібників, які я натрапила, стосуються Баша. Деякі попереджають про башизми, а деякі ні. Я багато читав тут і Stack Overflow. Щоразу, коли у відповіді використовуються башизми , хтось неминуче коментує, щоб сказати: …

2
Розширення змінної оболонки та ефект глобула та розщеплення на нього
Цей пост насправді містить два окремі питання, але я думаю, що об'єднання їх разом дасть ще трохи контексту. Я пережив це питання щодо цитат навколо змінних, але я не зовсім розумію, що означає розширення змінної в першу чергу. Отже, моє перше питання: Що таке розширення розширення в розмові unix / …

2
Чи шкідливо закрити вікно терміналу без належного виходу з програми?
Використовуючи Ubuntu 12.04 LTS, моє запитання полягає в тому, що якщо я запустив програму в термінальному вікні, то чи є щось погане в тому, щоб просто закрити вікно терміналу, не виходячи з програми спочатку належним чином. Наприклад, я використовую MATLAB. Я відкриваю термінал і набираю matlab -nodisplay -nodesktop -nosplash а …

5
У яких ситуаціях користувач не дозволив оболонці записати свою команду в історію?
Якщо додати export HISTCONTROL=ignorespaceв .bashrc, баш НЕ буде записувати які - або команди , які мають прогалини перед ними в історію. Але я не розумію, в яких ситуаціях це буде корисно. Хтось може навести кілька прикладів?

4
Чи можна встановити конфігурацію git у кількох сховищах?
Здається, Git підтримує значення конфігурації на трьох рівнях: Загальні глобальні налаштування (зберігаються в /etc/git-core) Глобальні налаштування для користувачів (зберігаються в ~/.gitconfig) Локальні налаштування для репозиторію (зберігаються в $REPO/.git/config) Ці параметри охоплюють більшу частину основи, але я шукаю спосіб впоратися з четвертим рівнем. У мене є (дуже) велика колекція сховищ, для …
18 shell  git 

2
Як застосовувати рекурсивно chmod каталоги, не впливаючи на файли?
Після того, як я звернусь chmod -Rдо каталогу, дозволи змінюються на все, що знаходиться всередині (файли та каталоги). Як я можу додати xдозволи до виконання / пошуку ( ) до каталогів без зміни файлів?
18 shell  find  chmod 

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