質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
86.02%
csh

cshは、C言語スタイルの構文を持つUNIX系OSのシェルの1つのことです。

Q&A

解決済

csh 文字の改行について

wada3
wada3

総合スコア103

csh

cshは、C言語スタイルの構文を持つUNIX系OSのシェルの1つのことです。

2回答

0グッド

0クリップ

215閲覧

投稿2023/01/25 07:06

編集2023/01/25 07:50

イメージ説明
画像の結果を
aaa aaaではなく
aaa
aaa
にしたいです。どうしたらよいでしょうか

Code your C Shell script here

set title2 = "bbb"
set body = "$title
aaa"
echo $body

気になる質問をクリップする

クリップした質問は、後からいつでもマイページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

下記のような質問は推奨されていません。

  • 質問になっていない投稿
  • スパムや攻撃的な表現を用いた投稿

適切な質問に修正を依頼しましょう。

yuma.inaura

2023/01/25 07:12

コードは画像ではなくテキストで載せてみませんか
melian

2023/01/25 07:14

バッククォートで囲んでいないからです。
int32_t

2023/01/25 07:17

cshのマニュアルでsetの項にはなんと書いてありましたか。
wada3

2023/01/25 07:33

echoはつかえないのですね
int32_t

2023/01/25 07:51

質問内容が変わるような編集はやめてください。回答が意味不明になります。
melian

2023/01/25 08:18

tcsh なら、 set body = "$title\naaa" としますが、Playground の C shell はオリジナルのBSD版だと思われるのでダメでしょうね。
wada3

2023/01/25 08:30

ありがとうございます。 aaa aaa にしたい場合なら set body = "$title\n\naaa" ってことですよね?
melian

2023/01/25 08:33

そうです。
wada3

2023/02/03 06:17

実行環境にはいれないのでまた実行できるようになったらやってみます

回答2

0

文字列リテラルの中に改行を入れるのは、

csh

1set body = "$title\ 2aaa"

と、行末の前にバックスラッシュを書きます。
参照の時は:qを付けます。
"で囲んでも良いはずですが、終わりの"が無いというエラーになりますね。行区切りの解釈タイミングがおかしいのでしょう。

csh

1set body = "$title\ 2aaa" 3echo $body:q 4# ↓ はエラー 5echo "$body"

コメントにあるように、tcshだとechoの設定によってはechoが\nを改行に変換して表示する機能があるので、改行を変数に入れずに\nを入れておくというのも、echoする場合に限っては有効です。多くの環境でcshコマンドは実はtcshです。

投稿2023/01/25 12:45

otn

総合スコア81071

下記のような回答は推奨されていません。

  • 質問の回答になっていない投稿
  • スパムや攻撃的な表現を用いた投稿

このような回答には修正を依頼しましょう。

回答へのコメント

wada3

2023/02/03 06:16

参考にしていただきます。

0

ベストアンサー

csh のマニュアルには以下のように書かれています。

set name ... set name=word ... ... These arguments can be repeated to set and/or make read-only multiple variables in a single set command. Note, however, that variable expansion happens for all arguments before any setting occurs. Note also that `=' can be adjacent to both name and word or separated from both by whitespace, but cannot be adjacent to only one or the other. See also the unset builtin command.

質問文のコードでは、変数 bodyecho を代入し、次に変数名 タイトル を発見してエラーになっていると思われます。複数の語からなる文字列を変数に代入するには、引用符で囲みます。

投稿2023/01/25 07:44

編集2023/01/25 07:46
int32_t

総合スコア17880

下記のような回答は推奨されていません。

  • 質問の回答になっていない投稿
  • スパムや攻撃的な表現を用いた投稿

このような回答には修正を依頼しましょう。

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
86.02%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問

同じタグがついた質問を見る

csh

cshは、C言語スタイルの構文を持つUNIX系OSのシェルの1つのことです。