私の質問はここのスレッドに基づいています。テキストファイルで特定の行をコマンドとして実行するには?
どうやって走るの?一組のラインテキストファイルから?
これが私が今まで試したことです:
Input file:
1 #!/usr/bin/csh -v
2
3 date
4
5 echo "abc"
6
7 set cell="bananas"
8
9 set cmd = "echo apples \
10 oranges \
11 graped $cell"
12
13 echo $cmd
14
sed -n '5,13 p' /tmp/1 | sh
以下を提供します。
abc
(blank line)
これが残りの行を実行しないのはなぜですか?それとも私が疑うように実行されますが、コマンドが新しく実行されるため、出力は提供されませんか?単一のシェルセッションの代わりに毎回sh(ell)を使用しますか?
ありがとうございます!
答え1
sh
スクリプトが予期したものとは異なるシェルを使用しているため、テストは失敗しますcsh
。
sed -n 5,13p /tmp/1 | csh
あなたが期待する結果を生み出します。