Вычислить команду на основе переменной в bash [закрыто]

No debería perder archivos si el núcleo funciona correctamente. Deman 5 proc:

/proc/sys/vm/drop_caches (since Linux 2.6.16)
       Writing  to  this  file  causes the kernel to drop clean caches,
       dentries, and inodes from memory, causing that memory to  become
       free...
...
       Because writing to this file is a nondestructive  operation  and
       dirty  objects  are  not  freeable,  the user should run sync(1)
       first.

Como indica el manual, solo se vacían las cachés limpias y escribir cualquier cosa en drop_cacheses una operación no destructiva. Los objetos sucios no se molestan en absoluto.

0
11.05.2019, 14:46
1 ответ

У вас опечатка в имени переменной.

Это:

choosenFile=${allFilesinDirectory[randomNumber]}

Должно быть:

choosenFile=${allFilesInDirectory[randomNumber]}

На самом деле, для хорошей практики вы должны двойные -цитировать свои переменные, когда вы их используете. Это делается для того, чтобы пробелы в значениях не оценивались оболочкой, когда вы меньше всего этого ожидаете. Так что правильная строка должна быть такой:

choosenFile="${allFilesInDirectory[randomNumber]}"

Я бы настоятельно рекомендовал вам использоватьhttps://www.shellcheck.net/для проверки сценариев оболочки. Как это бывает, он уловил бы вашу опечатку и предупредил бы вас об этом.

Что касается второй части вашего вопроса, просто перестаньте дважды -цитировать всю строку. Напишите команду и укажите ссылку на переменную там, где она вам нужна, например, вот так:

sudo openvpn "$choosenFile"
0
28.01.2020, 03:41

Теги

Похожие вопросы