1

ファイルの名前とディレクトリ パスをテキスト ファイルに 1 行で追加するスクリプトを作成しようとしています。例えば

Filename /root/folder/folder/

私はもう試した:

ls "$1" >> /root/folder/folder/file.txt
pwd >> /root/folder/folder/file.txt

しかし、それは別の行に表示されます。

私は試しました

ls "$1" && pwd >> ...... 

ただし、pwdをテキストファイルに貼り付けただけです。

私はLinuxが初めてなので、どんな助けでも大歓迎です。

4

4 に答える 4

1

これはどう:

echo "$1 $(pwd)" >> outputfile
于 2012-11-25T12:32:21.740 に答える
0

使用する:

p1=`ls $1`
p2=`pwd`
echo $p1 $p2 >> /root/folder/folder/file.txt
于 2012-11-25T12:31:45.127 に答える
0

試す:

echo "$1$(pwd)" >> /root/folder/folder/file.txt

または、連結された文字列を使用して新しい変数を作成し、それをエコーすることもできます。

NewVar="$1$(pwd)"
echo "$NewVar" >> /root/folder/folder/file.txttxt

上記の最初の例では、各コマンドが改行を挿入します。2 番目の例では&&、2 つのコマンドが分割されているため、最初のコマンドの出力はリダイレクトされません。つまり、リダイレクトを に配布することはできません&&

于 2012-11-25T12:36:07.493 に答える
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
于 2012-11-25T13:28:57.540 に答える