Linuxシェル - 一部の変数とメソッドはテキストファイルに追加されません。

Linuxシェル - 一部の変数とメソッドはテキストファイルに追加されません。

変数を取得し、$myname他のファイルのすべてのレコードを計算してテキストファイルに追加する方法に$filename問題があります。コードは以下にありますが、なぜ添付されないのかわかりません。wc -l < hs_alt_HuRef_chr10.fa >> "$CuestaP.txtCuestaP.txt

myname="Pablo Andres Cuesta"    #creates variable containing my name

echo "Hello my name is:"    
echo "$myname"            #Display myname
echo
echo "This program is called:"    
filename=$(basename "$0")    #Display name of file without ./
echo "$filename"

echo

echo "$myname" >> "$CuestaP.txt" #Puts myname inside text file
echo "$filename" >> "$CuestaP.txt" # Puts file name inside text file

echo "The number of records inside the file 'hs_alt_HuRef_chr10' are:"
wc -l < hs_alt_HuRef_chr10.fa
wc -l < hs_alt_HuRef_chr10.fa >> "$CuestaP.txt" #Put amount of records inside file



echo "$USER" >> "$CuestaP.txt" #Add username to text file
echo "$PWD" >> "$CuestaP.txt" #Add file location to text file


if [ -s *.fa ]; then
    # read the age from the file.
    # if the file exists and is not empty, see flags above
    echo "my *.fa file exists and has data in it" >> 
"$CuestaP.txt" 

else
echo "THIS DID NOT WORK CORRECTLY" >> "$CuestaP.txt" 

fi

echo
cat CuestaP.txt

私の結果:こんにちは。私の名前はPablo Andres Cuestaです。

This program is called:
CuestaPOGpgm3.sh   

The number of records inside the file 'hs_alt_HuRef_chr10' are:
1842651

#myname is missing
#filename is missing
#my *.fa file exists and has data in it is missing
pcuesta    #my username went through though?
/home/pcuesta    #my pwd went through though?

答え1

問題はファイル名です$CuestaP.txt$実際にファイル名の一部になるには、単一引用符またはバックスラッシュ('$CuestaP.txt'、)が必要です\$CuestaP.txt。あるいは、これは変数と見なされましたが、すべてを定義することを忘れて、リテラルと混合しました。

あなたのデータはファイルにあります.txt

答え2

[ -s *.fa ]で始まる複数のファイル名がある場合は、単一の.faファイル名(hs_alt_HuRef_chr10.fa?)またはループを使用してテストできます。

for name in *.fa; do
    if [ -s "$name" ]; then
        printf '"%s" has data in it\n' "$name"
    fi
done >>"$CuestaP.txt"

これは、残りの出力ステートメントのほとんどとともにCuestaP変数と見なされます。 $CuestaP.txt変数の内容に展開され、.txt値の末尾に追加されます。

私が知っている限り、は$CuestaP何でも拡張され、ほとんどのデータは.txt(現在のディレクトリの隠しファイル)というファイルに保存されます。

関連情報