Вопросы с тегом «shell»

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

1
ctrl c против ctrl z с задним планом
Ctrl+ Zостанавливает работу, а Ctrl+ Cубивает работу. Почему это? Разве другой способ не имеет больше смысла? z@z-lap:~$ sleep 100& [1] 4458 z@z-lap:~$ sleep 200& [2] 4459 z@z-lap:~$ jobs [1]- Running sleep 100 & [2]+ Running sleep 200 & z@z-lap:~$ fg %1 sleep 100 ^Z [1]+ Stopped sleep 100 z@z-lap:~$ jobs …

4
ln -s с путем относительно pwd
Я пытаюсь создать кучу символических ссылок, но не могу понять, почему это работает ln -s /Users/niels/something/foo ~/bin/foo_link пока это cd /Users/niels/something ln -s foo ~/bin/foo_link не является. Я считаю, что это как-то связано с foo_linkссылками на foo /Users/niels/binвместо/Users/niels/something Итак, вопрос в том, как мне создать символическую ссылку, которая указывает на …
26 bash  shell  symlink  ln 

5
Запустить скрипт в текущей оболочке без. перед командованием
Если скрипт должен быть выполнен в текущей оболочке, это может быть достигнуто путем добавления точки перед командой: . ./somescript.sh Есть ли способ сделать это, не набирая точку каждый раз? Например команда для перехода на родительскую оболочку из самого скрипта?
26 shell 


3
Удалить все файлы, созданные до определенной даты
У меня есть каталог, содержащий большое количество файлов (например, журналы на каждый день года). Я хотел бы удалить все файлы, созданные до, скажем, 22/11. Как я могу этого достичь? Должен ли я использовать findтогда exec -rm? Я использую кш.
26 shell  files  find  ksh 

1
Выполнить функцию readline без привязки клавиш?
Я просто читал man-страницу readline и обнаружил кучу замечательных команд, о которых я не знал. Однако у некоторых нет привязок клавиш по умолчанию. Есть ли способ выполнить несвязанные команды из оболочки? Я не спрашиваю, как связать команду в ~ / .inputrc, а вместо этого, как выполнить ее как «один раз» …
26 bash  shell  readline  inputrc 

3
Когда вам нужен nohup, если вы уже разветвляетесь, используя '&'?
Сначала этот вопрос связан, но определенно не совпадает с этим очень хорошим вопросом: Разница между nohup, disown и & Я хочу кое-что понять: когда я делаю '&', я разветвляюсь, верно? Всегда ли полезно делать "nohup ... &" или просто и достаточно? Может ли кто-нибудь показать случай, когда вы будете использовать …
26 shell  nohup  fork 


8
Как поменять цикл for?
Как правильно сделать forцикл в обратном порядке? for f in /var/logs/foo*.log; do bar "$f" done Мне нужно решение, которое не ломается от прикольных символов в именах файлов.

8
Используйте конфигурационный файл для моего сценария оболочки
Мне нужно создать файл конфигурации для моего собственного скрипта: вот пример: сценарий: #!/bin/bash source /home/myuser/test/config echo "Name=$nam" >&2 echo "Surname=$sur" >&2 Содержание /home/myuser/test/config: nam="Mark" sur="Brown" это работает! Мой вопрос: это правильный способ сделать это или есть другие способы?

4
Массивы в Unix Bourne Shell
Я пытаюсь использовать массивы в оболочке Bourne ( /bin/sh). Я обнаружил, что способ инициализации элементов массива: arr=(1 2 3) Но он сталкивается с ошибкой: syntax error at line 8: `arr=' unexpected Теперь в посте, где я нашел этот синтаксис, говорится, что он предназначен bash, но я не смог найти какой-либо …

6
Как добавить арифметические переменные в скрипт
Я хочу накопить размер строки для ряда файлов, содержащихся в папке. Я написал следующий скрипт: let a=0 let num=0 for i in folder/* do num=`cat $i | wc -l` a=$a+$num done echo $a В конце скрипта я получаю 123 + 234 + 432 + ... а не результат арифметической операции …



5
Зачем мне нужно указывать переменную для if, но не для echo?
Я читал, что вам нужны двойные кавычки для расширения переменных, например if [ -n "$test" ]; then echo '$test ok'; else echo '$test null'; fi будет работать как положено, пока if [ -n $test ]; then echo '$test ok'; else echo '$test null'; fi всегда будет говорить, $test okдаже если …
26 shell  quoting 

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.