我有一个如下所示的 shell 脚本,我想在其中调用另一个已经存在的 shell 脚本,并像平常一样执行它。例如,如果有人从以下菜单中命令“s”,我希望此脚本在我的所有目录中搜索文件“isearch”并在终端上执行它,以便他们可以在 isearch 上工作。搜索和执行现有文件的确切代码是什么?
我已经尝试过这个,但这不起作用-
find / -type f -iname "isearch" -exec {} \
以下内容适用于在我的计算机中运行的脚本,但如何让它为也拥有所有这些文件但可能位于不同文件夹中的任何人运行。
/home/user/eecs2031as2/isearch
这是带有菜单的脚本,可以从中调用其他脚本。
#!/bin/sh
echo "============== MENU =============="
echo "s: Search for a word"
echo "c: Count lines, words, characters"
echo "r: Clear the screen"
echo "q: Quit the program"
echo "===================================="
echo " "
echo -n "Enter command: "
read usercommand
提前致谢。
答案1
尝试将代码保留在同一个程序中,并使用如下所示的函数和案例跳转到它......
echo -n "Enter command: "
read userCommand
case "$userCommand" in
[Ss] )
echo ''
searchWord
function searchWord {
#Enter code here
}
但是,如果您确实想运行单独的文件,那么您可以研究的另一个命令是使用“grep”并从脚本中获取输出。
如果您在文件头中存储魔术值,然后使用命令
x="$(find | grep -rl "MagicValue")"
./$x