我正在尝试查找可执行文件。尝试使用bourne shell /bin/sh
以提高可移植性。在脚本echo
下方,在字符串的开头有find:
的所有内容。
#!/bin/sh
DIRS=`find / -perm -4000`
for DIR in "$DIRS"
do
case "$DIR" in
find:*);;
esac
done
问题)当没有给出命令时,为什么它会回显find:*)
?
如果我在case语句中添加*) echo "$DIR";;
子句,它将回显当前用户可执行的文件,这是我真正想要的,但是没有发生(我没有为{{编写脚本] 1}}真的,但这让我很困惑)
是的/bin/sh
,sed
,awk
可以提供极大的帮助,但其中一些命令很可能无法使用(为什么它们不可用。因为它们可能不是! )所以我认为bourne shell版本更便携。也许有更好的方法来cut
子串匹配,任何想法?
答案 0 :(得分:0)
你试图摆脱的线条大概是这样的:
find: `/root': Permission denied
这是一条错误消息。命令替换
`find ...`
仅捕获输出,而不是错误。您需要添加重定向以包含错误:
`find ... 2>&1`
此外,-perm 4000
是setuid位,而不是可执行位。