モジュールフォルダに拡張子のないファイルを表示し、配列に追加します。
function toolbox {
array=(`ls "$1" | xargs`)
len=${#array[array{@]}
for (( i=0; i<$len; i++ ))
do
echo "`basename ${array[$1]} .ssh`"
done
}
これにより望ましい結果が得られますが、forループを使用する必要があります。
toolbox "module"
ベストアンサー1
${var#word}
拡張は配列${var%word}
でも機能します。
arr=(/dir/dir1/foo.ssh /dir/dir2/bar.ssh )
arr2=("${arr[@]##*/}")
arr2=("${arr2[@]%.ssh}")
printf "%s\n" "${arr2[@]}"
印刷foo
してくださいbar
。
このコマンド置換は、空白(何もない場合でも)または引用符()を含むファイル名をls | xargs
破棄します。xargs
xargs
実際、次のように変数からグローバル変数を拡張できます。いいえ引用してみてください。このように:
array=( $1 )
(IFS
まだ重要ですが、最初に空の文字列に設定しないと、空白のあるパターンが壊れます。)
ただし、名前が終わるファイルのみを探している場合は、次のスクリプトに.ssh
ディレクトリを引数として渡し、globを渡すことができます。*.ssh
array=( "$1"/*.ssh )