Tag: shell script

Распаковка файла с восклицательным знаком из командной строки в сценарии bash

Я пытаюсь сделать простой скрипт, который распаковывает ZIP-файл с восклицательным знаком в его имени: #!/bin/bash UNZIP='/usr/bin/unzip' CUT="/usr/bin/cut" GREP="/usr/bin/grep" FILENAME="test" FILE="/usr/local/var/www/htdocs/"$FILENAME"\!3.zip" UNZIPPEDFOLDER=$($UNZIP ${FILE} | $GREP -m1 'creating:' | $CUT -d' ' -f5-) echo $UNZIPPEDFOLDER но когда скрипт выполняется, unzip возвращает: unzip: cannot find or open /usr/local/var/www/htdocs/test\!3.zip, /usr/local/var/www/htdocs/test\!3.zip.zip or /usr/local/var/www/htdocs/test\!3.zip.ZIP. Он отлично работает, когда нет «!» войдите […]

Как поставить «rm -i» на итерации?

echo "$MOUNTPOINTLIST" | while read onelinefortouch; do touch "${onelinefortouch}testfileforwrite"; done echo "$MOUNTPOINTLIST" | while read onelineforrm; do rm -i "${onelineforrm}testfileforwrite"; done Вопрос: Но это не вызывает файлы один за другим, когда приходит «rm -i». Зачем? Как это исправить?

Как передать аргумент из сценария bash в 'x-terminal-emulator -e bash -c'?

Предположим, у меня есть этот скрипт: x-terminal-emulator -e bash -c 'echo hello > ~/text' Я называю его foo.sh и делает его исполняемым. Если я выполню этот скрипт, у меня будет текстовый файл в моей домашней папке, содержащий слово «привет». Теперь, если я изменю его на это: x-terminal-emulator -e bash -c 'echo $1 > ~/text' … […]

изменение формата даты в команде awk

У меня есть файл mdn.txt со следующей выборкой. mdn.txt: 123456,2711448,1,20150214092425,20150714092425,120,20150814163821,,123,,,123,20150214092425,,123,,,123,20150214092425,,123,Y Теперь я хочу обработать каждую запись моего файла с помощью awk и изменить формат поля даты, как показано ниже: 123456,2711448,1,14-02-2015 09:24:25,14-07-2015 09:24:25,120,14-08-2015 16:38:21,,123,,,123,14-02-2015 09:24:25,,123,,,123,14-02-2015 09:24:25,,123,Y Ввод даты здесь является цифрами с ( Y ухом, M onth, D ay, H our, M inute, S econd) YYYYMMDDHHMMSS […]

Что такое эквивалент Fedora /var/lib/dpkg/info/.prerm?

Пример файла: /var/lib/dpkg/info/util-linux.prerm Что такое эквивалент Fedora этого файла? (Не ограничиваясь, util-linux – общий вопрос для любого пакета.) Случай использования: сценарий prerm не работает. Для целей отладки я хотел бы включить xxt ( sh -x ).

Позиция курсора в vi при открытии файла

vishex () { echo '#!/bin/bash' > $1; chmod +x $1; vi $1 } Целью вышеуказанной функции является наличие псевдонима для быстрого и удобного создания сценариев bash. Я хотел бы, чтобы при открытии файла курсор не стоял бы в линии Шебанга, а на строке ниже. Я пробовал что-то вроде echo 'blabla\n', echo "blala\n", printf "blala\n" без […]

Как передать переменную среды скрипту?

Хорошо, я могу отобразить переменную среды из командной строки: echo $COLUMNS И получите ответ. Но я не могу выполнить это из сценария оболочки, я ничего не получаю. Таким образом, должен быть способ импортировать эту переменную среды, но я не смог найти простое решение / объяснение. Когда-то я вспоминаю, что видел что-то вроде $ENV_COLUMNS , но […]

Предотвращать запуск определенных строк скрипта как root

Предположим, что я пишу сценарий оболочки, который требует привилегий root, например, #!/bin/sh ip -s -s neigh flush all ufw enable Как я могу запретить выполнение определенных строк кода с правами root, т. Е. Предположим, что я добавляю строку в приведенном выше скрипте, который запускает браузер TOR. #!/bin/sh ip -s -s neigh flush all ufw enable […]

Скопируйте имена файлов и добавьте префикс пути в каталог, рекурсивный

У меня есть рабочий каталог: /home/myusername/projectdir Рабочий каталог содержит файлы и подкаталоги. Глубина подкаталогов неизвестна. Я хочу поместить все файлы *.log в один и тот же выходной каталог с базовыми именами с префиксом пути подкаталога (substitutin / with # ). Пример: /home/myusername/projectdir/file1.log -> /home/myusername/output/file1.log /home/myusername/projectdir/subdir/file2.log -> /home/myusername/output/#subdir#file2.log /home/myusername/projectdir/subdir/subsubdir/file3.log -> /home/myusername/output/#subdir#subsubdir#file3.log Я попробовал это: cd "$PROJECT_DIR" […]

Найдите и замените строку, если определенный шаблон найден в строке

Все, что мне нужно сделать, это поиск CCSID в этом файле, везде, где он находит CCSID , CHAR в этой строке следует заменить на NCHAR и VARCHAR в этой строке следует заменить NVARCHAR2 . Я пробовал использовать sed и awk. Но я не мог найти идеальный способ решить эту проблему. CREATE TABLE JCR.ICMSTSYSCONTROL ( LIBRARYSERVERID […]

Linux и Unix - лучшая ОС в мире.