Чтобы проверить, существует ли уже монтирование или нет, используйте следующую команду и проверьте наличие fuse.sshfs :
mount | grep fuse.sshfs
Также для монтирования или размонтирования файловой системы обратитесь к этой man странице.Попробуйте размонтировать ее и смонтировать снова. Больше об этом здесь
Вы не добавляете «несколько переменных». Вы добавляете строку. Самый простой интерфейс для вашей функции - это вызвать ее с одной строкой в качестве аргумента:
myfunction 'test1 test2'
, а затем (без использования function
в качестве имени функции, потому что это ключевое слово в некоторых оболочках)
myfunction () {
sudo sed -i "/^STRING/ s/\$/ $1/" FILE
}
Помните, что на самом деле это не добавляет указанную строку, потому что аргумент вставляется в сценарий sed. Любые /
или \
в аргументе не интерпретируются буквально. Вы можете обойти это, предварительно подготовив аргумент:
myfunction () {
extra=$(printf '%s\n' "$1" | sed 's![\\/]!\\&!g')
sudo sed -i "/^STRING/ s/\$/ $extra/" FILE
}
В качестве альтернативы вы можете использовать другой инструмент, такой как perl:
myfunction () {
sudo env extra="$1" perl -i -pe '/^STRING/ s/$/\Q$ENV{extra}/' FILE
}
Если вы абсолютно хотите, чтобы ваша функция принимала серию строк в качестве аргументов и добавляла их все по порядку с помощью пробел между ними, тогда вы можете использовать "$ *"
. Это расширяется до одного слова, содержащего все аргументы функции с пробелом между ними.
myfunction () {
extra=$(printf '%s\n' "$*" | sed 's![\\/]!\\&!g')
sudo sed -i "/^STRING/ s/\$/ $extra/" FILE
}