2016-03-17 2 views
1

Я пытаюсь добавить filename:filesfullpath в скрытый файл, поэтому каждый раз, когда пользователь запускает скрипт и вызывает в файле, файл и полный путь к файлу будут добавлены в скрытый файл, представлены следующим образом:Добавление материала в скрытый файл

filename:filepath 
filename:filepath 

.. 

Я знаю, как получить имя файла и путь файла, но я не знаю, как поставить все это в одной строке с двоеточием и в скрытый файл.

У меня есть

flink=$(readlink -e $1) 
fname=$(basename $flink) 

fname":"flink >> .hiddenfile 

, но очевидно, что не работает.

+0

просто 'эхо' это? Прямо сейчас ваша «строка» выполняется как команда и, очевидно, не работает – Pankrates

ответ

2

Укажите свои переменные. Например:

flink=$(readlink -e "$1") 
fname=$(basename "$flink") 

echo "${fname}:${flink}" >> /path/to/.hiddenfile 
+0

Не возражаете ли вы объяснить, почему нам нужно использовать кавычки, а что означает, что переменная $ {variable} все еще не знает, когда ее использовать. – Nabz

+0

@Nabz Неспособность использовать кавычки или скобки может вызвать всевозможные проблемы с разбиением слова и переменным расширением. Вы должны почти всегда включать их в защитное программирование, хотя опытные программисты могут опускать их в особых случаях использования, когда расщепление слов или цитирование нежелательны. Для начала см. Раздел [Расширение параметров] (http://www.gnu.org/software/bash/manual/html_node/Shell-Parameter-Expansion.html), [Quoting] (http://www.gnu.org /software/bash/manual/html_node/Quoting.html) и [Разделение слов] (http://www.gnu.org/software/bash/manual/html_node/Word-Splitting.html). –

Смежные вопросы