私のスクリプトは次のように保存され、recent.sh
現在は次のように読みました。
#!/bin/bash -x
rcnt() {
ls -t -p | grep -v / | head -n1 | cat
}
source recent.sh
実行すると、rcnt
ディレクトリ内の最新のファイルが印刷されます。しかしI./recent.sh
またはsh recent.sh
それがターミナルに何も印刷しないとき。 (保存したディレクトリで実行してみました。)
usr/bin/env bash
Linux Mint 19の端末でこれを実行しようとしていますが、-xなしでbashの代わりにshを使用してみました。権限は777です。
このスクリプトを実行している端末に印刷するにはどうすればよいですか?
私は初心者であり、何かを見落としているかもしれませんが、ほとんどの権限を正しく設定することを提案している関連SO、StackExchangeなどの答えをすべて読んで、bashがどこにあるのか(私にはbin / bash)または他のコード関連の問題。
答え1
これを実行するには、作成した関数を呼び出す必要があります。
Bashの関数呼び出しには括弧は必要ありません。したがって、スクリプトは次のようにする必要があります。
#!/bin/bash
rcnt() { #Function definition
ls -t -p | grep -v / | head -n1 | cat
}
rcnt #Function invocation