Ubuntu。必须安装 basename 工具。Bash 脚本名为“basename”
#!/bin/bash
PROGNAME=$(basename $0)
if [[ -e $1 ]]; then
echo -e "\nFile Type:"
file $1
echo -e "\nFile Status:"
stat $1
else
echo "$PROGNAME: usage: $PROGNAME file" >&2
exit 1
fi
启动“./basename case”后,其中“case”是一个 bash 脚本,出现错误:
/home/user/bin/basename: fork: retry: No child processes
/home/user/bin/basename: fork: retry: No child processes
...
/home/user/bin/basename: fork: Resource temporarily unavailable
最后显示出了预期的结果。
这里发生了一些棘手的事情。它是什么?
答案1
好的,我明白了。第三行中的 basename 命令不会启动 basename linux 工具,但它会递归启动此脚本。因此,像标准 linux 程序那样命名脚本并不好。要使脚本使用名称“basename”工作,它必须使用 basename 的完整路径名。
PROGNAME=$(/usr/bin/basename $0)