我正在尝试编写一个脚本,以便在一行中添加文件名和文本文件的目录路径。 E.g。
Filename /root/folder/folder/
我试过了:
ls "$1" >> /root/folder/folder/file.txt
pwd >> /root/folder/folder/file.txt
但它出现在单独的行上。
我确实尝试了
ls "$1" && pwd >> ......
但它只将pwd粘贴到文本文件中。
我是Linux新手所以非常感谢任何帮助。
答案 0 :(得分:1)
这个怎么样:
echo "$1 $(pwd)" >> outputfile
答案 1 :(得分:0)
使用:
p1=`ls $1`
p2=`pwd`
echo $p1 $p2 >> /root/folder/folder/file.txt
答案 2 :(得分:0)
尝试:
echo "$1$(pwd)" >> /root/folder/folder/file.txt
或者您可以使用连接字符串创建一个新变量,然后回显:
NewVar="$1$(pwd)"
echo "$NewVar" >> /root/folder/folder/file.txttxt
在上面的第一个示例中,每个命令都插入一个换行符。在第二个示例中,您拥有的&&
分解了两个命令,以便不重定向第一个的输出。换句话说,您无法在&&
之间分发重定向。
答案 3 :(得分:0)
一种常见的技巧是使用printf
(或echo -n
,但不太便于使用)以避免编写换行符:
exec >> /root/folder/folder/file.txt
printf "%s " "$1"
pwd
在您的示例中,您使用命令生成初始数据,在这种情况下,一种好的方法是使用tr
修剪换行符
ls "$1" | tr -d '\012'
printf " " # Insert a space
pwd