私はbashのコースを進めていますが、これは少し古いようです。以下は、行を読み取ったり実行したりするときに行を表示できる単純なスクリプトですが、私のコンソールには何も返されません。 bartek_report.shに渡された$ 1パラメータは、コンソールがハングしたときに何が起こるかを確認したいので、意図的に欠落しています。最新のUbuntuを使用してください。
#!/bin/bash -v #or -x
# creates a report for a single container
# exercise: add a variable called 'directory'
# that determines where we save our output file
directory="reports"
mkdir -p $directory
grep $1 shipments.csv > $directory/$1.csv
echo Report created in $directory under filename $1.csv
bashからスクリプトを呼び出すと、-xまたは-vなしで操作が中断されます。なぜですか?
bartek@Lenovo-LAB~/Desktop/Devs/bash_learning/02/demos/after_m2$ sh bartek_report.sh
[blinking cursor]
ベストアンサー1
スクリプトを実行するシェルをbash
明示的に指定したため、呼び出しスクリプトを使用していません。sh
#!
一番上の行は、スクリプトを実行可能にし、システム内の他のプログラムのように処理する場合にのみ考慮されます。
chmod a+x myscript # Make executable
./myscript # Run it
すでに述べたようにコメントこの答えの下で、あなた-x
はまた-v
標準出力。どちらもデバッグツールであり、メッセージを作成します。標準エラー有効な通常の出力フローを妨げないようにします。 (これにより、./script >file
デバッグメッセージが端末に書き込まれ、正常な予想出力が書き込まれますfile
。)