有没有办法只从shell脚本执行指定数量的行?我会尝试用头部复制它们并将它们放在一个单独的.sh上,但我想知道是否有一个快捷方式......
答案 0 :(得分:2)
重新组织shell脚本并创建函数。
说真的,把每一行代码放到一个函数中。
然后(以ksh为例),用“。”来源脚本。进入交互式shell。
您现在可以按名称运行任何功能,并且只运行该功能中的代码。
以下简单的例子说明了这一点。您可以通过两种方式使用它:
1)链接脚本,以便您可以通过其中一个函数的名称来调用它。
2)获取脚本(使用. script.sh
),然后您可以在其他地方重用这些函数。
function one {
print one
}
function two {
print two
}
(
progname=${0##*/}
case $progname in
(one|two)
$progname $@
esac
)
答案 1 :(得分:1)
编写自己的脚本/ tmp / headexecute例如
#!/bin/ksh
trap 'rm -f /tmp/somefile' 0
head -n $2 $1 > /tmp/somefile
chmod 755 /tmp/somefile
/tmp/somefile
使用文件名和要执行的行数来调用它
/ tmp / headexecute / tmp / originalscript 10
答案 2 :(得分:0)
大多数炮弹没有这样的设施。你必须以艰难的方式去做。
答案 3 :(得分:0)
这可能适合你(GNU sed):
sed -n '1{h;d};H;2{x;s/.*/&/ep;q}' script
这将执行script
的前两行。