Articles of Аргументы

найти внутри функции оболочки

Я пытаюсь поместить функцию find внутри и поймать аргумент, переданный этой функции, в следующем минимальном рабочем примере: функция DO { ls $ (find. -type f -name “$ @” -exec grep -IHl “TODO” {} \;) } Но когда я выполняю DO *.tex , я получаю «find: paths должен предшествовать выражению:». Но когда я делаю прямо: ls […]

сопоставить массив аргументов, а затем преобразовать в строку

Скажем, у меня есть следующие функции bash в скрипте: foo(){ my_args_array=(“$@”) export my_args=”${my_args_array[@]}” bar $my_args } bar(){ echo “number of args: $#”; } foo ab ‘cde’ если я запускаю приведенный выше скрипт, я получу: количество аргументов: 5 но то, что я ищу, это: количество аргументов: 3 поэтому мой вопрос – есть ли способ отобразить значение, […]

Выполнение скрипта `sh -c` через SSH (безопасная и разумная передача аргументов)

Я внезапно понял, что не знаю, как выполнять вещи через SSH. Я пытался сделать $ ssh user@server sh -c ‘echo “hello”‘ но он ничего не выводит, точнее, выводит пустую строку. Если команда, переданная ssh , запускается через $SHELL -c на удаленном хосте, то я могу понять, почему это так (или я все равно могу попытаться […]

Определить необязательный аргумент функции (массив)

Рассмотрим эту функцию: function add_one(in_ar, each) { for (each in in_ar) { in_ar[each]++ } } Я хотел бы изменить его так, чтобы при наличии второго массива он использовался вместо изменения входного массива. Я попробовал это: function add_one(in_ar, out_ar, each) { if (out_ar) { for (each in in_ar) { out_ar[each] = in_ar[each] + 1 } } […]

отмена аргументов после вызова смены 1

У меня есть такой сценарий first_arg=”$1″; if foo; then shift 1; node foo.js “$@” elif bar; then shift 1; node bar.js “$@” elif baz; then shift 1; node baz.js “$@” else node default.js “$@” fi Я хотел бы превратить вышесказанное в это: first_arg=”$1″; shift 1; if foo; then node foo.js “$@” elif bar; then node […]

Shell: использование функции с параметрами в if

Я пытаюсь выполнить приведенный ниже код, но когда я пытаюсь использовать свою функцию в операторе if, я получаю -bash: [: too many arguments ошибка -bash: [: too many arguments . Почему это происходит? Заранее спасибо! notContainsElement () { local e match=”$1″ shift for e; do [[ “$e” == “$match” ]] && return 1; done return […]

Почему `sort <“ $ f1 ”` предпочтительнее, чем `sort -“ $ f1 ”`, и почему это предпочтительнее `sort“ $ f1 ”`?

С https://unix.stackexchange.com/a/458074/674 Не забудьте использовать — при передаче произвольных аргументов командам (или использовать перенаправления, где это возможно). Так что sort — “$f1” или лучше sort < "$f1" вместо sort “$f1” . Почему предпочтительнее использовать — и redirect? Почему sort < "$f1" предпочтительнее sort — “$f1” ? Почему sort — “$f1” предпочтительнее sort “$f1” ? Благодарю.

ffmpeg усекает пути на выходе, если при запуске на bash задействованы точки

Если у меня есть путь с точками в пути, например: /home/user/Documents/hello/test.testing_23-24.123/test.testing_23-24.124 ffmpeg может найти файл, если вы передадите путь к файлу в качестве аргумента, но он усекает имя пути до первой точки, с которой он сталкивается в пути к файлу, когда выводит файл. Например, я получил это: #!/bin/sh src_folder=`pwd` for filename in “${src_folder}”/*.MP4 do ffmpeg […]

Сигнализировать об окончании аргументов опции: двойные тире `–` против одинарной тире` -`?

В https://unix.stackexchange.com/a/459007/674 я замечаю, что одиночная тире – используется для обозначения конца аргументов опции. Верно ли, что двойные тире — могут также сигнализировать об окончании аргументов опции? Каковы их различия тогда? Когда использовать что? Они оба соглашения GNU? Благодарю.

Bash: дать построенный массив для функции в качестве списка аргументов?

У меня есть эта проблема с borgbackup, но поскольку реакция та же, я буду использовать rsync в моем примере. Я хочу создать массив аргументов, добавив префикс к каждому, а затем передать этот массив в rsync . Но rsync действует так, как будто его не существует. С помощью этого скрипта: #!/usr/bin/env bash # declare -a exclude_String […]