Bashスクリプトの変数に代入

Bashスクリプトの変数に代入

次のスクリプトがあり、空のテキストファイルを作成しようとしています。試してtouchもう一度試しましたがecho -n >失敗しました。

#!/bin/bash

set filename_result="contents"

echo "filename=$filename_result" # Shows: filename=

rm -f "$filename_result".json

touch $filename_result # Error: usage: touch [-A [-][[hh]mm]SS] [-acfhm] [-r file] [-t [[CC]YY]MMDDhhmm[.SS]] file ...
# Note that `% touch myfile` works fine on the command line

touch -- "$filename_result" # Error: touch: : No such file or directory

echo -n > "$filename_result" # Error: No such file or directory

echo "[" >> "$filename_result"

for file in *json
do
    echo "examining file: $file"
    echo "\n" >> "$filename_result"
    cat $file >> "$filename_result"
    echo "\n" >> "$filename_result"
done

echo "\n]" >> "$filename_result"

mv $filename_result "$filename_result".json

編集:画面filename_result変数に印刷すると、設定後に空白が表示されますか?

echo "filename=$filename_result" # Shows: filename=

ベストアンサー1

set filename_result="contents"割り当てられた値がありませんfilename_result。最初の位置パラメータに割り当てられ、値自体はですfilename_result=contents。例:

$ set filename_result="contents"
$ echo "$1"
filename_result=contents

変数はfilename_result存在せず、$filename_result空の状態に展開されます。"$filename_result"これはと同じです""

set filename_result="contents"ほしいものよりも

filename_result="contents"

おすすめ記事