【发布时间】:2017-08-18 18:59:01
【问题描述】:
我正在编写一个带有迭代菜单的脚本来运行命令行。但是,在创建迭代菜单后,当我想运行命令时出现错误。 错误是 [COMMAND]No such file or directory linux。
#!/bin/bash
ATESTS=("TEST NAME 1" "TESTE NAME 2")
PATH=("test1.xml" "text2.xml")
menu () {
for i in ${!ATESTS[@]}; do
printf "%3d%s) %s\n" $((i+1)) "${OPT[i]:- }" "${ATESTS[i]}"
done
[[ "$msg" ]] && echo "$msg"; :
}
prompt="Check an ATEST (again to uncheck, ENTER when done): "
while menu && read -rp "$prompt" num && [[ "$num" ]]; do
/usr/bin/clear;
[[ "$num" != *[![:digit:]]* ]] &&
(( num > 0 && num <= ${#ATESTS[@]} )) ||
{ msg="Invalid ATEST: $num"; continue; }
((num--)); msg="${ATESTS[num]} was ${OPT[num]:+un}checked"
[[ "${OPT[num]}" ]] && OPT[num]="" || OPT[num]="+"
done
for i in ${!ATESTS[@]}; do
[[ "${OPT[i]}" ]] && { printf "%s " "${ATESTS[i]}"; msg=""; }
done
echo "$msg"
for i in ${!ATESTS[@]}; do
if [[ "${OPT[i]}" ]] && [[ $PWD = /repo/$USER/program ]]; then
find . -iname ${PATH[i]} -exec cat {} \;
fi
done
我想找到一个 *.xml 文件,然后使用已经存在且属于 /usr/bin 的脚本执行。但是 find 命令不执行,本例中的 cat 命令也不执行,出现以下错误([COMMAND]No such file or directory linux.)
如果我尝试在函数之前运行一个 bash 命令,命令执行没有任何问题,但在函数之后命令失败。
我为在 /repo/$USER/program 中运行的脚本创建了一个别名,但不包含脚本的路径。
【问题讨论】:
标签: linux bash shell sh shebang