Shell 如何在当前路径中查找所有可用的“source\u me”?
假设我有一个类似于Shell 如何在当前路径中查找所有可用的“source\u me”?,shell,tcsh,Shell,Tcsh,假设我有一个类似于/src/system/subsystem/subsubsystem的路径,system、subsystem和subsubsubsystem中的每一个都有一个名为source\u me的文件。如何为当前环境中的每个源代码创建脚本 示例使用 在我的第一个回答中,我不理解你的问题,我希望这次我理解了: #!/bin/tcsh foreach f (`pwd | awk -F'/' '{ for (i = 2; i <= NF; i++) print path = path"/
/src/system/subsystem/subsubsystem
的路径,system
、subsystem
和subsubsubsystem
中的每一个都有一个名为source\u me
的文件。如何为当前环境中的每个源代码创建脚本
示例使用
在我的第一个回答中,我不理解你的问题,我希望这次我理解了:
#!/bin/tcsh
foreach f (`pwd | awk -F'/' '{ for (i = 2; i <= NF; i++) print path = path"/"$i }'`)
echo "> Sourcing $f..."
if (-e $f/source_me) then
source $f/source_me
else
echo "no such file"
endif
end
#/垃圾箱/垃圾箱
foreach f(`pwd | awk-f'/''{for(i=2;i)您可以cd..
直到到达根目录,然后使用目录堆栈($dirstack[]
)返回。在此之前,您可能需要使用dirs-c
清除堆栈。不幸的是,我得到[1]:echo$SHELL/bin/tcsh[2]:cat~/bin/source#u all#!/usr/bin/env tcsh#-*-模式:sh-*-…[3]:source\u all for:Command-not-found.do:Command-not-found.f:Undefined变量。
可能是因为您使用的是tcsh
。在脚本的第一行添加#!/bin/bash
。这个问题被标记为tcsh
…我能从tcsh使用bash脚本吗?(我必须使用后者工作。)非常抱歉…我没有看到标签…我将尝试编辑我的答案,但我无法测试它。很公平:)我确信这个答案适用于bash,所以它绝对有用!
#!/bin/tcsh
foreach f (`pwd | awk -F'/' '{ for (i = 2; i <= NF; i++) print path = path"/"$i }'`)
echo "> Sourcing $f..."
if (-e $f/source_me) then
source $f/source_me
else
echo "no such file"
endif
end