tcshで配列全体を印刷したいです。 uniqでパイプしたいからです。 tcshでこれを行う方法はありますか?
私は持っていますset array
印刷中です。
echo "$array"
しかし、最終的にエラーが発生します。単語が長すぎるので、より小さな配列で動作します。
これを行う簡単な方法はありますか?
答え1
非常に古い tcsh バージョンが必要です。言葉が長すぎるこの制限は、2006年のtcshバージョン6.14.03で削除されました。
echo "$array"
配列要素の連結をecho
単一の要素に渡しますが、要素に改行文字が含まれていると失敗します。
echo "$array:q"
すべての要素の接続を渡す方が正確です。
配列のすべての要素を転送します(空の要素を除く)。次のバージョンで修正済み)を別々のパラメータとして使用echo
します。つまり、
echo $array:q
しかし、echo "$array"
あなたが失敗した場合言葉が長すぎる、echo
非常に古いバージョンでも失敗する可能性がありますエコ:引数が多すぎます。。
答え2
tcshでは、次のように配列を使用できます。
配列定義
set myarray = ( element1 element2 element3 element4 etc )
配列全体を出力
printf '%s\n' "$array[-]"
印刷要素1〜3
printf '%s\n' "$array[1-3]"
注:Bashでは、配列の最初の要素は0
(0)から始まります。
また、set verbose
説明された行と失敗した行を表示するには、スクリプトの上部に追加してください。