Linux编程 执行shell程序
编辑完greeting文件后,还不能立即执行,要执行该文件中的shell脚本,首先应当使用chmod命令打开该文件的可执行权限,然后,就可以像运行其他Linux命令那样执行它了。如图16所示。
使用带-l选项的ls命令可以检查该文件的访问权限,如图17所示:
图17 查看文件权限 图18 执行shell程序(一)
下面,可以像在命令行上执行其他shell命令那样执行greeting了,如图18所示。
读者要注意,这里的mydir是当前工作目录root中的子目录,greeting就位于mydir中。该程序执行后,根据当前登录用户的名字,显示出了相应的问候信息。可以看出,在执行程序时给出了完整的路径;除此之外,也可以不给出可执行文件的完整路径,而只给出文件名,这需
要首先在当前用户(这里为root)的工作目录中建立一个名为bin的子目录(如果已有,就无需再建了),然后,把已被打开可执行权限的文件greeting复制到bin目录中。如图19所示:
图19 执行shell程序(二)
这样能使程序运行,是因为Fedora默认设置的用户shell环境中包含可执行路径$HOME/bin。通过管道将env命令的输出传递给fgrep可以查看该环境变量PATH,如图20所示:
图20 查看环境变量PATH(一)图21 查看环境变量PATH(二)
可以看到,用户(本例中为root)可以使用新的bin目录来包含可执行文件。查看环境变量的另一种快捷方式是使用带环境变量名(本例中为$PATH)的echo命令。如图21所示。
也可以在指定的shell(例如tcsh)下执行位于root/bin目录中的greeting,如图22所示:
图22 执行shell程序(三) 图23 执行shell程序(四)
该命令行调用了一个新的tcsh shell,并将文件名greeting作为参数传递给该shell以执行此文件。
其实,在执行一个shell程序之前,也可以不使用chmod +x命令打开相应文件的可执行权限,只需告诉Fedora该文件是一个可以执行的脚本文件。例如,在root/mydir中有一个名为aaa的shell脚本文件,其内容如下所示:
#program aaa
VARA="男儿到死心如铁,看试手,补天裂!"
echo $VARA
直接在命令行中执行该程序,如图23所示。
可以看出,在mydir/aaa前面有一个点“.”,并且它们之间用空格隔开,这就告诉shell文件root/mydir/aaa是可执行的。使用该方法就无需再设置文件的执行许可了。
linux循环执行命令脚本
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论