Tag: bash

Привязать к переменной массива bash косвенно, динамически сконструированным именем переменной

Bash для создания нескольких массивов из csv с неизвестными столбцами. Я пытаюсь написать сценарий для сравнения двух файлов csv с похожими столбцами. Мне нужно, чтобы найти соответствующий столбец из другого csv и сравнить любые различия. Кикер – это то, что скрипт должен быть динамическим, чтобы можно было вводить любое количество столбцов, и он все еще […]

Возможно ли построить имена переменных из других переменных в bash?

Я прошу прощения за довольно ужасный титул – и сообщение о плохом качестве – но то, что я в основном хочу сделать, это: for I in 1 2 3 4 echo $VAR$I # echo the contents of $VAR1, $VAR2, $VAR3, etc. Очевидно, что это не работает – он (я думаю) попытаюсь повторить переменную с именем […]

Bash 4 ассоциативных массива: ошибка “объявить: -A: недействительный вариант”

Я написал скрипт, который использует ассоциативные массивы в bash (v 4). Он отлично работает на моей локальной машине, которая использует 4.1.5(1)-release . На производственной машине, используя 4.1.0(1)-release следующая строка, объявляющая массив-член, терпит неудачу: declare -A uniqjars с сообщением: /script.sh: line 11: declare: -A: invalid option declare: usage: declare [-afFirtx] [-p] [name[=value] …] У меня сложилось […]

Получение нескольких аргументов для одной опции с использованием getopts в Bash

Мне нужна помощь с getopts . Я создал сценарий Bash, который выглядит следующим образом: $ foo.sh -i env -d каталог -s подкаталог -f файл Он работает правильно при обработке одного аргумента из каждого флага. Но когда я вызываю несколько аргументов из каждого флага, я не уверен, как вытащить из переменных в getopts информацию о переменных […]

Как записать cd в каталог с пробелом в имени?

Я много пробовал. Смотри ниже: Попытайтесь попасть в каталог: / cygdrive / c / Пользователи / мой каталог / Документы $ DOCS=”/cygdrive/c/Users/my\ dir/Documents” $ echo $DOCS /cygdrive/c/Users/my\ dir/Documents $ cd $DOCS -bash: cd: /cygdrive/c/Users/my\: No such file or directory $ cd /cygdrive/c/Users/my\ dir/Documents (success) Очень странное поведение. Когда я вручную ввожу его, backspace выполняет свою […]

Итерации по двум массивам одновременно в bash

У меня два массива. array=( Vietnam Germany Argentina ) array2=( Asia Europe America ) Я хочу циклически перебирать эти два массива одновременно, т. Е. Вызывать команду над первыми элементами двух массивов, затем вызывать одну и ту же команду для вторых элементов и т. Д. псевдокод: for c in $(array[*]} do echo -e ” $c is […]

Командная строка для удаления всех файлов View-private ClearCase

Я ищу командную строку для удаления всех файлов и каталогов, связанных с представлением, из представления ClearCase в Windows. У меня также есть Cygwin. Скрипт, ansible в этой статье , не совсем то, что я хочу, так как я работаю с большим количеством файлов и хочу удалить их все, не выбрав их.

Bash: Как закончить бесконечный цикл нажатием любой клавиши?

Мне нужно написать бесконечный цикл, который останавливается при нажатии любой клавиши. К сожалению, этот цикл выполняется только при нажатии клавиши. Идеи, пожалуйста? #!/bin/bash count=0 while : ; do # dummy action echo -n “$a ” let “a+=1” # detect any key press read -n 1 keypress echo $keypress done echo “Thanks for using this script.” […]

Как вызвать bash, запустить команды внутри новой оболочки и затем вернуть управление пользователю?

Это должно быть действительно просто или очень сложно, но я ничего не мог найти об этом … Я пытаюсь открыть новый экземпляр bash, затем запустить несколько команд внутри него и вернуть управление пользователю внутри тот же экземпляр . Я пытался: $ bash -lic “some_command” но это выполняет some_command внутри нового экземпляра, а затем закрывает его. […]

Экспорт массива в сценарий bash

Я не могу экспортировать массив из сценария bash в другой скрипт bash следующим образом: export myArray[0]=”Hello” export myArray[1]=”World” Когда я пишу так, нет проблем: export myArray=(“Hello” “World”) По нескольким причинам мне нужно инициализировать мой массив на несколько строк. У вас есть решение?

Давайте будем гением компьютера.