変数(tmp)に複数行の文字列を入れます。
これはダメです。
cat << 'EOF' | tmp=$(cat) #DB = [ BACKEND = "sqlite" ] DB = [ backend = "mysql", server = "localhost", port = 0, user = "userrr", passwd = "passwddd", db_name = "dbbb" ] EOF echo -e "$tmp" aaa
これはいいですけど、
tmp=$(cat << 'EOF' #DB = [ BACKEND = "sqlite" ] DB = [ backend = "mysql", server = "localhost", port = 0, user = "userrr", passwd = "passwddd", db_name = "dbbb" ] EOF ) echo -e "$tmp" #DB= ... (略) OK
ほんとはこういう感じのがいいです。
cat << 'EOF' | tmp=$(cat) cat << 'EOF' > tmp
もし、文字列に()が混じっていると、ダメです。
と思ったら、できました。
これはbashのバージョンの違いによるのでしょうか。
()混じるとがダメですのソース
tmp=$(cat <<EOD 1) aaa 2) bbb 3) ccc choose a number (1-3) ? EOD ) echo -e "$tmp" 1) aaa ... (略) OK bash --version GNU bash, バージョン 4.2.46(2)-release (x86_64-redhat-linux-gnu)
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/07/26 17:56