Старый вопрос, но учитывая, что в последний раз я видел одноядерный персональный компьютер десять лет назад, вы можете использовать gnu parallel
для решения оболочки раскрытие и интерпретация кавычек
my_awk='ORS=NR%3?" ":"\n"'
Используйте соответствующий глобус для выбора входных файлов. Здесь я использую {.}
, чтобы удалить расширение из имени вывода, потому что я добавляю его позже
parallel -jX "awk '$my_awk' {} > {.}_sorted.tex" ::: *.tex
, где X
- количество процессоров, которые вы хотите использовать, но вы можете использовать 1.
Это даст вам файл [1-9] _sorted.tex
в качестве выходных данных
Клиентская утилита mysql
может принимать пароль в командной строке с параметрами -p
или - password =
.
Если вы используете -p
, после буквы параметра не должно быть пробелов:
$ mysql -pmypassword
Я предпочитаю длинные параметры в сценариях, поскольку они самодокументируются:
mysql --password=mypassword --user=me --host=etc
создайте файл ~/.my.cnf, сделайте его доступным только себе, права доступа 600.
[client]
user=myuser
password=mypassword
Тогда вам больше не нужно вводить пароль.
bash$ mysql -u myuser mydatabase
mysql>
Вы можете использовать изящный трюк Linux...
/dev/stdin
можно использовать как файловый ресурс для --defaults-file
вот так:
echo -e "[client]user=xxx\npassword=xxx" | mysql --defaults-file=/dev/stdin -e 'select user()
Обычно вы можете использовать -
вместо /dev/stdin
, но это соглашение, которое многие программы (, включая mysql
), не соблюдают.
Еще немного о файловом ресурсе /dev/stdin
:
$ ls -la /dev/stdin
lrwxrwxrwx 1 root root 15 Jun 19 08:35 /dev/stdin -> /proc/self/fd/0
Таким образом, вы также можете проверить ситуации с пустым паролем
Как сказал @maxschlepzig в комментарии,
Note that there is the MYSQL_PWD environment variable which is read by mysql if you don't specify -p.
Так в баш:
read -s -p "Enter the mysql password for $DBUSER @ $DBNAME: " DBPASS
export MYSQL_PWD="$DBPASS"
mysqldump -u $DBUSER $DBNAME > dump.sql