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

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

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

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

Q&A

解決済

2回答

1057閲覧

csh 文字の改行について

wada3

総合スコア103

csh

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

0グッド

0クリップ

投稿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

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

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

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

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

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

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

回答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

総合スコア84538

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

wada3

2023/02/03 06:16

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

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

総合スコア20872

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問