объединение нескольких файлов на основе первого столбца и сохранить проблемы с памятью

При подаче заявления на шенгенскую визу, нас попросили просто забронируйте билеты на самолет. Визовый процесс занял гораздо больше времени, чем они ожидали, и оговорки были отменены.

Сегодня нам сказали, что мы могли бы забрать наши визы завтра, пока мы купить и подарить им наши билеты на самолет. Как говорит название, проблема они больше не доступны для дней мы первоначально просили.

Наши визы начинается 30 июня и заканчивается 27 сентября. Мы нашли билеты на самолет для нашей цели, оставляя на 29 июня, и это ночной рейс, так что мы будем прибывать в пункт назначения на 30 июня до сих пор.

Сможем ли мы использовать эти билеты с нашей визой? Или они остановят нас при вылете в нашем аэропорту на 29, потому что в визе написано 30-го?

+209
Fomich26rus 10 нояб. 2015 г., 05:38:50
22 ответов

Когда вы передаете пароль на стандартный ввод, пакет cryptsetup читает одну строку ввода, и удаляет символ новой строки в конце этой линии, а также любая последующая линия.

Когда вы передаете пароль от файла с ключом-файл, все содержимое файла используются. Если файл содержит строку, то пароль не может быть одинаковой с той, которая передается на стандартный ввод.

+927
Barocsai Viki 03 февр. '09 в 4:24

Поэтому в основном я хочу написать bash-скрипт, который анализирует некоторые специальные файлы из рабочего каталога (которые называются file.00.txt до file.24.txt). Дело в том, что 3 из них exatcly же и моя задача-создать скрипт, который говорит мне, что 3 такие же.

Вот мой код

#!/бин/Баш 
f0=file.00.txt
f1=file.01.txt
f2=file.02.txt
f3=file.03.txt
f4=file.04.txt
f5=file.05.txt
f6=file.06.txt
f7=file.07.txt
f8=file.08.txt
f9=file.09.txt
f10=file.10.txt
f11=file.11.txt
f12=file.12.txt
f13=file.13.txt
f14=file.14.txt
f15=file.15.txt
f16=file.16.txt
f17=file.17.txt
f18=file.18.txt
f19=file.19.txt
f20=file.20.txt
f21=file.21.txt
f22=file.22.txt
f23=file.23.txt
f24=file.24.txt

массив=($ф0 $Ф1 $Ф2 $Ф3 $Ф4 $Ф5 $Ф6 $ф7 $ф8 $Ф9 $Ф10 $Ф11 $Ф12 $от F13 $ф14 $Ф15 $ф16 $F17 в $ф18 $f19 по $ф20 $клавиши F21 $ф22 $ф23 $ф24)

я=0
сенсорный прототип

в то время как [ $я -это ${массив#} ]
делать
 Дифф=$(разн ${массив[я]} ${массив[я+1]})
 если [ "$дифф" = "" ]
тогда
 Эхо "${массив[я]} Г ${массив[я+1]}" >> прототип
интернет
я=$((я+1))
сделано

 кошка заполнитель 

Идея этого кода заключается в сравнении каждого файла следующим в массиве , а затем сохранить те, которые совпадают в файле заполнителя и, наконец, раскрывающих содержание файл с помощью команды cat.

Однако, каждый раз, когда я запускаю скрипт я получаю сообщение

file.00.txt г file.00.txt
file.01.txt г file.01.txt
file.02.txt г file.02.txt

и так далее для каждого файла. Этого не должно произойти, так как я явно используя

Эхо "${массив[я]} Г ${массив[я+1]}" >> прототип

Эхо обеих позиций. Почему это происходит и как я могу решить это ?

Как я могу решить это?

+814
ZetaPro 16 июн. 2012 г., 02:31:55
Другие ответы

Связанные вопросы


Похожие вопросы

Я пытаюсь запустить моей базе данных Oracle, как она идет вниз, используя обработчик событий скрипт.

Объект конфигурации файл oraclehost.cfg он имеет:

определение узла {
имя_хоста Test_Oracle
адрес 127.0.0.1
check_command проверить-хозяин-жив
check_interval 3
retry_interval 1
max_check_attempts 5
check_period 24x7 и
process_perf_data 0
retain_nonstatus_information 0
контакты nagiosadmin
notifications_enabled 1
notification_interval 30
notification_period 24х7
notification_options д,р
}
определите сервис {
 имя_хоста Test_Oracle
 service_description check_OraDB
 check_command check_MyOracle
 event_handler перезагрузка-оракул
 event_handler_enabled 1
 check_interval 5
 retry_interval 1
 max_check_attempts 5
 check_period 24x7 и
 notifications_enabled 1
 notification_interval 30
 notification_period 24х7
 notification_options Р,Ш,с
 контакты nagiosadmin
}

Самой команды.cfg он имеет:

# Команда 'определение БД Oracle' 
определить команду {
 имя_команды check_MyOracle
 command_line $ПОЛЬЗОВАТЕЛЬ1$/check_oracle_on.sh
}

# Команда 'определение оракула обработчик БД' 
определить команду {
 имя_команды перезагрузка-оракул
 command_line $ПОЛЬЗОВАТЕЛЬ2$/oracle_handle.sh $SERVICESTATE$ $SERVICESTATETYPE$ $SERVICEATTEMPT$
}

Вот oracle_handle.sh скрипт обработчик событий скрипт.

#!/usr/Бен/ш
дело "$1" в
ОК)
;;
Предупреждение)
 регистратор "тогда он пошел сюда"
ПУТЬ=$PATH: В ФАЙЛЕ$HOME/.местные/Бен: главная$/ОГРН:/у/оракул/сервер/oracle12c102/ОГРН
 путь экспорта
Пути ORACLE_HOME=/у/оракул/сервер/oracle12c102
 экспорт ORACLE_HOME, т.
Oracle_sid, вам нужно будет=walinv
 экспорт oracle_sid, вам нужно будет
 Эхо "ora123" |для sqlplus sys файлы@walinv пользователя sysdba @this_file.в SQL
;;
Неизвестно)
;;
Критический)
;;
эсок
выход 0

В this_file.в SQL содержит одну строку внутри: автозагрузки. Она используется для запуска базы данных Oracle.

Также регистратор "тогда он пошел сюда" , что присутствует в обработчик событий скрипт отображается в линукс логи в каталоге/var/журнал/сообщения. Поэтому предупреждение деле работает.

Моя среда журнал событий показывает: библиотеки журнала событий сценария

Если я запускаю скрипт в терминале, как в Nagios пользователей, скрипт работает отлично и базы данных Oracle начинается. Однако, если в Nagios работает через веб-сервер, в случае Nagios веб-мониторинг состояния остается в предупреждение и базы данных.

С помощью Nagios пользователь пользователям использовать sudo?.

Я потратил более 10 часов на это. Почему это происходит?

Почему в Nagios не начиная моей базе данных Oracle при выполнении скрипта обработчика событий?

+784
chaseholden 24 июл. 2013 г., 05:37:17

Когда я устанавливаю работает с iodbc пакет libmyodbc удаляется, и я не понимаю, почему. Есть ли у кого объяснение?

+752
Femo1 31 мар. 2017 г., 22:51:48

Вы можете только купить оранжевый SIM-карты из магазина Orange, я думаю, и я никогда не видел в Шарль-де-Голль. Все магазины перечислены здесь: http://agence.orange.fr/. стоимость новой SIM-карты только по 10 евро и включает в себя 5 евро кредита.

+715
RoobyDooby 9 февр. 2017 г., 00:46:16

Мне нужно просмотреть большой (50000x40000 пикселей) изображение png на Linux. К сожалению, большинство инструментов (эог, преобразования и т. д.) либо сбои или не с примечание о слишком мало памяти.

Есть ли способ, чтобы просмотреть это изображение (я бы предпочел увидеть, как изменяется изображение и детали)?

+675
rajdeep shrivastava 24 февр. 2021 г., 12:13:32
судо ПКГ установить VBoxSolarisAdditions.ПКГ
ПКГ установки: следующие шаблон(ы) не соответствует какой-либо допустимых пакетов. Попробуйте использовать другой шаблон соответствия, или освежающий информация об издателе:
судо ПКГ установить ./VBoxSolarisAdditions.ПКГ 
установить ПКГ: незаконное фМРТ './VBoxSolarisAdditions.ПКГ': недопустимое имя пакета: ./VBoxSolarisAdditions.ПКГ 
судо ПКГ набор-издатель -п /медиа/VBOXADDITIONS_4.3.38_106717/ 
набор ПКГ-издатель: ошибка файла протокола: код: 22 причина: путь '/медиа/VBOXADDITIONS_4.3.38_106717 не содержит действительной репозиторий пакетов. URL-адрес репозитория: файл:///СМИ/VBOXADDITIONS_4.3.38_106717'. 
судо ПКГ набор-издатель -п /медиа/VBOXADDITIONS_4.3.38_106717/VBoxSolarisAdditions.ПКГ 
ПКГ набор-издатель: ошибка файла протокола: код: 22 причина: архив /медиа/VBOXADDITIONS_4.3.38_106717/VBoxSolarisAdditions.ПКГ отсутствует, не поддерживается или поврежден. URL-адрес репозитория: файл:///СМИ/VBOXADDITIONS_4.3.38_106717/VBoxSolarisAdditions.ПКГ'.

Я делаю что-то неправильно?

+666
Johnny Anderson 5 июл. 2014 г., 06:44:55

Я заинтересован в использовании латекса, как я готовлю мой первый научный доклад. Я установил basictex и использовал его через использоваться. Я хотел бы начать с помощью команды basictex строки. Я не знаю, где они находятся или как использоваться способен волшебным образом найти их.

Что я могу сделать?

+498
Gresthol 17 мая 2013 г., 16:07:57

Недавно я попал в IRC, поэтому я установил Зю и начал - очевидно - общения.

Но, получается, что зю не предусматривает каких-либо функции безопасности, такие как SSL или TCP, таким образом, я в человека НИЦ, они сказали, чтобы использовать сокат , чтобы установить надежное TCP-соединение, так что я установил его и читать документальные.

В разделе примеру, я нашел это: сокат ПТС-слушай:протокол TCP-сайт:ВСП.домен.орг сайт:www Так что я просто побежал сокат ПТС-слушай:6667,вилка ПТС:ици.сети Freenode.объем:6697 и пытался связаться с ним, используя зю -ч 127.0.1 -п 6667 , который вытошнил: зю: удаленный узел закрыл соединение с сокат не жалуюсь.


Я попробовал его снова с помощью опции -д-д Для сокат быть более многословным:

2019/01/02 00:38:38 сокат[1889] Н принять связи с AF=2 
127.0.0.1:38664 на АФ=2 127.0.0.1:6667
2019/01/02 00:38:38 сокат[1889] Н ответвлялась дочернего процесса 1897
2019/01/02 00:38:38 сокат[1889] Н слушать на АФ=2 0.0.0.0:6667
2019/01/02 00:38:38 сокат[1897] Н открытие подключения к АФ=2 
185.30.166.37:6697
2019/01/02 00:38:38 сокат[1897] Н успешно подключался из местных 
адрес АФ=2 192.168.178.28:42822
2019/01/02 00:38:38 сокат[1897] N начало цикла передачи данных с соб 
[6,6] и [5,5]
2019/01/02 00:38:38 сокат[1897] Ш читать(5, 0x558eefca3710, 8192): 
Соединение прервано
2019/01/02 00:38:38 сокат[1897] Н гнезда 2 в гнездо 1-ошибка
2019/01/02 00:38:38 сокат[1897] Н исполнение 2 (ФД 5) в EOF
2019/01/02 00:38:38 сокат[1897] Н исполнение 1 (ФД 6) в EOF
2019/01/02 00:38:38 сокат[1897] Н исполнение 2 (ФД 5) в EOF
2019/01/02 00:38:38 сокат[1897] N выход со статусом 0
2019/01/02 00:38:38 сокат[1889] Н childdied(): обработка сигналов 17
+455
Kevin Ronk 19 апр. 2023 г., 12:12:36

Я был очень удивлен найти то, что может помочь в моих поисках мечты. Из SN25.132:

Все напрасно для тех, кто не охраняют дверями чувств, как и богатство человек находит во сне.

Из приведенных выше советов Будды, я бы сказал, что вы могли бы быть лучше ищет себе тихое место для размышлений осознанно и мирно на ваши отношения, не жадничая, отвращения или заблуждения. Богатство нашли во сне не платить по счетам. А также не дает четких рекомендаций.

+403
David Rickman 30 авг. 2015 г., 05:29:43

На фондовом Android 4.2.2 на Galaxy Nexus, что у меня была такая же проблема, уведомления Gmail не работает. Я проверил, что в настройках>передача данных "автосинхронизация" был включен.

Затем я зашел в Настройки>Аккаунты>Google, нажмите на адрес электронной почты, и вы видите все, что синхронизируется или нет.

Странно для меня это Gmail синхронизации не после того, как я недавно обновил свой диск.

Это должно заботиться об этой проблеме.

+386
Mark Radford 2 дек. 2022 г., 02:13:11

Сюжет такой:

Файл пытался быть отправлены через AirDrop, я не могу получить файл, мы оба были на окне Airdrop, ничего не происходит. Выйти из связи. Спустя несколько дней, сбрасывание по-прежнему показывает отправителя (друг), которых нет близости и тесноте моего десантирования.

Кто-нибудь знает, как решить эту проблему? Смотрите на скриншот проблемы.Cannot view my own bubble.

+344
Nakini 30 дек. 2013 г., 09:43:11

Может шавка отправить почту из командной строки без параметров командной строки, с предметом, копия, скрытая копия ответа, в ответ все внутри mail.txt файл с теле сообщения тоже (тот же формат файлов, как шавка мне открывается, когда я нажимаю м-отправлять почту, или R-ответить на сообщение).

... Так что я могу:

  • нажать 'R' на полученную почту, подготовить мое ответное сообщение, сохраните его с ':ш ~/preparedmail.txt' в Vim ... отменить отправку
  • и чем запустить $ в 8:00 <<< "шавка < ~/preparedmail.txt"

... или есть другой инструмент, который будет принимать этот формат. Или другой способ, чтобы достичь этого.

+311
Nimdrien 10 авг. 2017 г., 08:04:26

Я хочу играть видео с языком-меню на iPad, как DVD меню. Я читал на форуме, что DVD-меню не возможно, но это был старый поток.

Какие варианты на сегодняшний день для воспроизведения видео с пользовательскими меню на iPad?

Редактировать:

Что я хочу сделать именно это позволить зрителю выбрать язык фильма (субтитры). Это будет сделано с помощью DVD-меню, с видео в фоновом режиме. Это важно, потому что это для презентаций.

Я узнал, что в DivX поддерживает меню, поэтому я пытаюсь праа на данный момент, но программное обеспечение, чтобы сделать это довольно плохо.

+278
Jimmy345 13 окт. 2019 г., 09:33:19

В awk образом:

на awk '{если(ФНР==НР){Ф2[ФНР+1]=$1;} 
еще{
 если(ФНР==1){к++;} 
 если(к==1){Ф3[ФНР+1]=$1} 
 иначе{если($1~/^[0-9]+/ && $1>1){$3=Ф2[$1];$4=Ф3[$1];} 
печать}
 }}' файл1 файл2 файл file3 

Это то же самое пишется как прокомментировал скрипт для ясности:

#!/usr/местные/Бен/поглазеть -Ф

{
 ## NR-это номер текущей строки, независимо от 
 ## входной файл читается. ФНР-это линия 
 ## числа текущего файла. Он сбрасывается в 1 каждый 
 ## открыл новый файл время. Таким образом, ФНР будет 
 ## только равным ШП во время 1-й файл был прочитан.
если(ФНР==НР){
 ## Если это 1-й файл, сохраните его 1-го поля
 ## в массиве Ф2. Ключом массива является
 # номер строки# текущего файла плюс один. Это
 ## потому что вы хотите начать изменения с Далее строке '2'.
 ## Поэтому, предположительно, вы хотите, в 1-м ряду file2 в
 ## быть значение для строки '2' из файла данных..
Ф2[ФНР+1]=$1;
 } 
 ## Если это не 1-й файл
еще{
 ## Если это 1-й линии к текущему файлу
если(ФНР==1){
 ## Увеличиваем значение переменной k на 1.
к++;
 } 
 ## Если K 1 в настоящее время, это означает, что только
 ## было один раз так, в настоящее время мы читаем файл 1ый.
если(к==1){
 ## Сохранить 1-е поле данного файла (файл file3 в вашем примере)
 ## в массиве Ф3. Ключом массива является
 # номер строки# текущего файла плюс один. 
Ф3[ФНР+1]=$1
}
 ## Если K не равно 1, мы читаем 3-й файл. В этом случае 
 ## ваши фактические данные.
еще{
 ## Если 1-е поле-это количество и больше 1.
 ## Другими словами, если это одна из строк, которые вы хотите
 ## для изменения. 
 если($1~/^[0-9]+/ && $1>1){
 ## Установить 3-м поле значение сохраняется в массиве
 ## F2 для стоимости $1. 
3 $=Ф2[$1];
 ## Установить 4-м поле значение сохраняется в массиве
 ## F3 для стоимости $1. 
4 $=Ф3[$1];
 } 
 ## Печать текущей строки. Так как это за пределами
 ## если предыдущий блок, он будет печатать все строки, независимо от
 ## из того, что они были изменены. 
печати;
}
}
}

На Perl образом:

Перл-Лейн начинается{
 открытые(а,"файл2"); а(<а>){Chomp для; Ф2 ${$.+1}=$_;} 
 открыть(в"файл file3"); в то время как(<Б>){Chomp на; $Ф3{$.+1}=$_;}} 
 если($Е[0]=~/выражение^\D+$/ && $ф[0]>1){$Ф[2]=$Ф2{$ф[0]}; $Ф[3]=$Ф3{$ф[0]}}
 печать "@Ф"' файл1

Объяснение

  • -лейн : на Л автоматически удалить конечные символы новой строки в конце каждой строки ввода (как гусеничка) и добавить новую строку для каждого печатать заявление. То есть автоматически разделит каждой входной строки на пробелы в массив, делая на Perl работать как на awk. В Н означает "запустить скрипт, предусмотренных в каждой строке входного файла.
  • Начать{...} : это запускать перед входной файл читается. В этом случае я открываю каждый из дополнительных файлов и сохранение их содержание в %Ф2 и %Ф3 хэшей. Это в принципе такой же, как на awk массивы я использовал выше.
  • если($Е[0]=~/выражение^\D+$/ && $ф[0]>1){...} : повторюсь, это та же логика как в сценарий awk. Он заменит поля соответствующие записи каждого файла.
  • печать "@Ф" : это будет печать все поля.
+275
Laura Matson 21 янв. 2017 г., 04:58:48

По причинам дисплей у нас есть установки, где пользователь смотрит видео на MacBook через зеркало. Конечно, это работает хорошо для видео нормально, но пользователь хотел бы быть в состоянии сделать больше, чем смотреть видео, в том числе играть в некоторые игры и читать комиксы и тому подобное.

Поскольку пользователь просматривает на дисплее хоть в зеркало (есть решения этой проблемы инвалидности - я знаю, что это довольно странный вопрос) очевидно, что текст в обратном направлении. Можно ли horizonally флип выхода ОС Х? Либо на главном экране или внешнем мониторе? На данный момент это выглядит как два зеркала, это будет единственное решение и это будет сложно организовать.

Чтобы было понятно - я пытаюсь перевернуть горизонтально, не поворачивайте на 180 градусов. Так, Apple меню-это в верхнем правом углу и в Центре уведомлений фара верхняя левая.

Просьба указать/изменить и требования к версии ОС в вашем ответе.

+206
Geoffrey Hyatt 25 сент. 2011 г., 21:18:06

Я просто взял курс СЛР и было поручено выполнить 5 циклов после сжатия АВД шок (после чего вам ждать AED, чтобы сделать еще один анализ). Мой вопрос: если удар был успешным, и сердце снова бьется, не сжатия бардак с сердцем запуске ее ритм?

+171
Monika Matis 27 дек. 2013 г., 16:36:24

Я использую

nohup и mycommand &

Например, чтобы поднять виртуальную сервера введите следующую команду в удаленной консоли (которая потом закрыть):

nohup и VBoxHeadless --startvm "виртуальными машинами myvm" --ппри=off и
+169
user127229 28 янв. 2019 г., 02:57:55

Преследуя вкус, некоторые повара не очень заботят тратить пару чашек молока. Добавление молока делает вкус рыбы более нежным и более "мягким", чем просто добавляя сахар.

Однако, вы действительно не нужно, что если ты не пойдешь за него или вы думаете, что это абсолютная трата. По моему мнению, на вкус некоторые рыбы достаточно богат. Вы можете получить молоко-как суп из кулинария рыба в воде. Это на вкус гораздо лучше, чем молоко, по крайней мере для меня.

Чтобы удалить запах некоторых рыб, вы можете позволить ему сидеть с имбирем и алкоголь. Обе работы хорошо.

+117
Djarn 14 авг. 2011 г., 19:58:57

Я в конечном итоге решить эту проблему, выполнив следующие действия:

1) убедившись, что они были в /etc/АПТ/источников.список

деб http://http.kali.org/kali Кали-подвижного состава магистральных ВНО не бесплатно
# Для доступа к исходному пакету, раскомментируйте следующую строку
деб-СРЦ http://http.kali.org/kali Кали-подвижного состава магистральных ВНО не бесплатно

2) убедившись, что все было готово

apt-получить обновление && apt-получить расстояние-обновления

3) перезагрузка ядра

перезагрузка

4) выяснить мою версию:

корень@Кали:~# команды uname -а
Линукс Кали 4.6.0-kali1-для amd64 #1 СМП в Debian 4.6.4-1kali1 (2016-07-21) архитектуру x86_64 GNU/Линукс

5) выяснить, какие сетевые карты у меня

корень@Кали:~# команду lspci | grep в беспроводной
03:сетевой контроллер 00.0: корпорация Broadcom BCM4360 802.11 ac беспроводной сетевой адаптер (версия 03)

6) работает так:

корень@у Kali:~# apt-получить обновление; apt-получить установку для Broadcom-STA в-переходный; apt-получить установку Линукс-изображения-$(uname-Р|Е С,[^-]*-[^-]*-,,') в Linux-заголовков-$(uname-Р|СЭД с,[^-]*-[^-]*-,,') с Broadcom-STA в-переходный

7) тогда:

корень@Кали:~# команды modprobe -Р в43 в44 b43legacy ССБ brcmsmac млрд.

и

корень@Кали:~# sudo эти команды modprobe WL по

Наконец, вы можете проверить, что он работал с помощью iwconfig и вы увидите, что теперь у вас есть как wlan0 признан кали линукс. Зайти в настройки и подключиться к Wi-Fi интернет.

+70
Lokesh Bhandari 27 авг. 2022 г., 09:19:44

Резюме

Команда f=test.txt Ш-с 'кошкой "$Ф"' производит вывод потому, что присваивание переменной f=test.txt возникает перед экспансией (одинарные кавычки) команда-аргумент кошка "$Ф"'. В одиночные кавычки предотвращает расширение от до подкоманда кошка "$Ф" выполнен.

Команда f=test.txt кошка $Ф , совсем не производить продукцию, потому что присваивание переменной f=test.txt происходит после расширения (некотируемые) команда-аргумент .

Почему f=test.txt кошка $Ф не производит никакой продукции

Сначала я попытаюсь объяснить, почему команда f=test.txt кошка $Ф не производит никакого вывода, несмотря на ваши ожидания, что это будет. Вот там могут быть некоторые небольшая путаница относительно порядка оценки, в то, что называется простой команды.

Вы, возможно, предположили, что переменные в прологе команды (т. е. f=test.txt назначения) происходит до вычисления переменной в теле команды (т. е. расширение в кошки $Ф). Но это на самом деле не так. Чтобы убедиться в этом, мы можем обратиться к странице на простой командой расширения в bash руководство или подраздел о простых команд в спецификации POSIX. Оба эти упоминания относятся следующие прохождения:

"Простая команда" - это последовательность переменной необязательно заданий и перенаправлений, в любой последовательности, дополнительно сопровождаемый слов и перенаправления, прекращается оператором управления.

Когда дается простая команда должна быть выполнена (то есть, когда какой-нибудь условный конструкт, такой как и-список или в случае заявление не обошел простой команды), следующие дополнения, задания и перенаправления должны быть выполнены от начала команды текст до конца:

  1. Слова, что признаны присвоения переменных или перенаправления в соответствии с оболочки грамматические правила сохраняются для обработки в шагах 3 и 4.

  2. Слова, которые не изменяются задания или редиректы должны быть расширены. Если какие-либо поля остаются после их расширение, в первое поле считается именем команды, а остальные поля являются аргументами для команды.

  3. Редиректы должны быть выполнены, как описано в перенаправление.

  4. Для каждого присваивания переменной должен быть расширен для расширения Тильда, расширение параметров, подстановка команд, арифметические расширение и удаление цитаты до присвоения значения.

Обратите внимание, что Шаг 2, где переменная расширения в команде происходит, но Шаг 1 нам говорит, что переменная назначения сохраняются, пока шаги 3 и 4. Отсюда следует, что выражение кошка $Ф распространяется на кошку (без аргументов) до назначения f=test.txt происходит. Это объясняет, почему вы не получаете никаких выходных данных.

Для дальнейшей дискуссии по этой теме см. следующие посты:

Почему f=test.txt Ш-с 'кошкой "$Ф"' ли произвести вывод

Далее я попытаюсь объяснить, почему команда f=test.txt Ш-с 'кошкой "$Ф"' не произвести выход. Для этого мы хотим взглянуть на полный список основных операций, выполняемых оболочки:

  1. Оболочка считывает входные данные из файла (см. Ш), с параметром-C, или от системы() и к popen() функции, определенные в системных интерфейсов, объем в POSIX.1-2008. Если в первой строке файла команд оболочки начинается с символов "#!", результаты являются неуказанными.

  2. Снаряд разбивает входной сигнал на лексемы-слова и операторы; см. знак признания.

  3. Оболочка анализирует входные данные в простые команды (см. простые команды) и составные команды (см. составные команды).

  4. Оболочка выполняет различные расширения (отдельно) на различных участках каждой из команд, в результате чего в перечень путей и полей следует рассматривать как команду и аргументы; см. wordexp.

  5. Оболочка выполняет перенаправление (см. перенаправление) и удаляет перенаправление операторов и их операндов из списка параметров.

  6. Оболочка выполняет функции (см. функция определения команды), встроенные (см. специальные встроенные утилиты), исполняемый файл или скрипт, давая имена аргументов в качестве позиционных параметров, пронумерованных от 1 до n, и имя команды (или, в случае функции внутри скрипта, имя скрипта) как позиционный параметр с номером 0 (см. команду поиска и исполнение).

  7. Оболочка дополнительно ждет завершения выполнения команды и собирает выход статуса (см. статус выхода для команд).

Так что вы можете видеть здесь, что вызов функции/встроенные/исполняемый файл/скрипт (Шаг 6 в этом списке) происходит после разбора простого команду. Поэтому назначение f=test.txt происходит до исполнения программы Ш-с 'кошкой "$Ф"'. И поскольку аргумент один-процитировал он разбирается только после выполнения команды. Таким образом, команда расширяется до кошки "test.txt".

+63
Macek 8 авг. 2010 г., 15:12:13

Тид означает "идентификатор потока". Параметры parent_tidptr и child_tidptr пункт в пользовательское пространство памяти родительского процесса адресное пространство дочернего процесса адресное пространство, соответственно. Идентификатор созданного потока хранятся в переменных типа int в указатели.

Для получения дополнительной информации см. клон(2) странице.

+25
Bob Winterhalter 21 февр. 2011 г., 03:30:29

Показать вопросы с тегом