これまで、私のスクリプトはls
コマンドを処理し、ディレクトリ内のファイルを返すことができます。今ls -l /tmp
。
これまで私のスクリプトは次のようになりました。
#!/bin/bash
#set -x
clear
read -p "type a command: " file
read -r -a prog <<<"$file"
IFS=: read -r -a paths <<<"$PATH"
for val in "${prog[@]}" ; do
for path in "${paths[@]}"; do
[[ -x $path/$val ]] && "$path/$val" "$@"
done
done
ベストアンサー1
たぶん、次のようなものがあります。
#!/usr/bin/env bash
clear
IFS=: read -r -a paths <<<"$PATH"
read -p "type a command: " cmd
read -d ' ' file <<<"$cmd" #the first component of command
for path in "${paths[@]}"; do
[ -x "$path/$file" ] && eval "$path/$cmd"
done
これは、デフォルトで可能なすべてのパスに対して実行入力コマンドを解析します。