我正在尝试编写一个脚本来在一行中添加文件名和文本文件的目录路径。例如
Filename /root/folder/folder/
我试过了:
ls "$1" >> /root/folder/folder/file.txt
pwd >> /root/folder/folder/file.txt
但它显示在单独的行上。
我确实尝试过
ls "$1" && pwd >> ......
但它只将密码粘贴到文本文件中。
我是 Linux 新手,因此将不胜感激任何帮助。
这个怎么样:
echo "$1 $(pwd)" >> outputfile
采用:
p1=`ls $1`
p2=`pwd`
echo $p1 $p2 >> /root/folder/folder/file.txt
尝试:
echo "$1$(pwd)" >> /root/folder/folder/file.txt
或者您可以使用连接的字符串创建一个新变量,然后回显:
NewVar="$1$(pwd)"
echo "$NewVar" >> /root/folder/folder/file.txttxt
在上面的第一个示例中,每个命令都插入一个换行符。在第二个示例中&&
,您将两个命令分开,这样第一个命令的输出就不会被重定向。&&
换句话说,您不能在 中分配重定向。
一种常见的技术是使用printf
(或echo -n
,但移植性较差)来避免编写换行符:
exec >> /root/folder/folder/file.txt
printf "%s " "$1"
pwd
在您的示例中,您使用命令来生成初始数据,在这种情况下,一个好的技术是使用tr
修剪换行符
ls "$1" | tr -d '\012'
printf " " # Insert a space
pwd