2016-03-17 72 views
1

我试图将filename:filesfullpath添加到隐藏文件中,因此每次用户运行脚本并调用文件时,文件和完整文件路径都会添加到隐藏文件中,通过以下方式提出:将东西添加到隐藏文件

filename:filepath 
filename:filepath 

.. 

我知道如何让文件名和文件路径,但我不知道如何把它们都放在一个符合结肠和进入隐藏文件。

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

fname":"flink >> .hiddenfile 

但显然没有奏效。

+0

干脆'echo'吗?现在你的“字符串”正在作为命令执行,并且明显失败 – 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)和[Word Splitting](http://www.gnu.org/software/bash/manual/html_node/Word-Splitting.html)。 –

相关问题