社区
系统维护与使用区
帖子详情
为什么我的.sh命令必须在前面加上./*****.sh才能执行?
musashi
2004-09-16 09:55:41
假设一个sh命令:start.sh
那么我进入这个命令所在的路径,然后输入:
start.sh
却不能执行,
正确方法是:
sh start.sh 可以执行,
./start.sh 也可以执行,为什么?
...全文
1133
10
打赏
收藏
为什么我的.sh命令必须在前面加上./*****.sh才能执行?
假设一个sh命令:start.sh 那么我进入这个命令所在的路径,然后输入: start.sh 却不能执行, 正确方法是: sh start.sh 可以执行, ./start.sh 也可以执行,为什么?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
10 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
Tycool
2004-09-17
打赏
举报
回复
学到一招!原来只知道这样用,忘了有没有看过资料
haha886
2004-09-17
打赏
举报
回复
好像都是执行那些path里面的 没有的 必须全路径
XChinux
2004-09-17
打赏
举报
回复
据说因为有当前路径在$PATH中的话,不安全,所以还是用./a.out来的好
ccwwcsdnc
2004-09-16
打赏
举报
回复
./a.out
./即当前目录,../上一级目录。
你不可能把所有目录都加到路径变量$PATH中,所以执行当前目录下的文件时用./,这是习惯。
pacman2000
2004-09-16
打赏
举报
回复
在redhat里,默认情况下当前目录不在PATH搜索路径中。你可以修改$HOME/.bash_profile的PATH设置,把当前路径加上。
zhouqi66
2004-09-16
打赏
举报
回复
同意楼上的,Linux下的执行程序路径是由$PATH指定的,不包括当前路径,所以要用./指定.
suowei1979
2004-09-16
打赏
举报
回复
Linux不像DOS,默认的先搜索当前路径,而Linux一般情况下是按$PATH变量去搜索的,
用户的当前路径是不包含在此变量中的,所以要执行当前路径下的start.sh(必须是有可执行属性)文件,需要明示其路径,用相对路径如./start.sh或绝对路径
azoth
2004-09-16
打赏
举报
回复
假设你的文件在//test/start.sh
运行的话就
./start.sh
/test/start.sh
sh start.sh
3种方法
XChinux
2004-09-16
打赏
举报
回复
Linux不像DOS,默认的先搜索当前路径,而Linux一般情况下是按$PATH变量去搜索的,
用户的当前路径是不包含在此变量中的,所以要执行当前路径下的start.sh(必须是有可执行属性)文件,需要明示其路径,用相对路径如./start.sh或绝对路径
zdmaster
2004-09-16
打赏
举报
回复
看看是不是登录用户的配置文件有问题,是不是没有默认的shell。
我也是刚学,好像记得书上说过,不知道对不对?
Linux
执行
命令
为什么要加 ./(点斜杠) ?
文章目录问题引入原因分析什么是环境变量终端中
命令
搜索规则把自己的
命令
添加进环境变量扩展:Linux中的`~`、`/`、`./`分别代表什么 问题引入 如下图所示,当前文件夹下有一个名为 Hello.
sh
的
sh
ell 脚本,但是在
执行
它的时候却提示找不到文件,只有当
前面
加上
./ 才可以正确的运行这个脚本。那么这个是为什么呢? 原因分析 虽然我们的终端是在当前目录,而且当前目录中有我们要
执行
的文件,但是终端就是找不到它。需要我们指定文件的相对或绝对路径来告诉终端我们想运行的文件在哪里。 在 Linux
linux
sh
ell中的点
命令
------谈谈. ./a.
sh
和./a.
sh
的区别
在
前面
一面文章中, 我们深入分析过source
命令
的用途, 现在, 我们要来说说linux
sh
ell中的点
命令
。 不卖关子了, 直接说吧, linux
sh
ell中的点
命令
完全等同于source
命令
。 如果需要知道source
命令
的用途, 请直接看我的前一篇文章。 好, 我们来看看点
命令
操作和结果: [taoge@localhost Desktop]$ cat a.
sh
#! /bin/ba
sh
echo "
sh
ell script" expo
【Ubuntu】Linux
执行
命令
为什么要加 ./(点斜杠) ?
如下图所示,当前文件夹下有一个名为 的
sh
ell 脚本,但是在
执行
它的时候却提示找不到文件,只有当
前面
加上
才可以正确的运行这个脚本。那么这个是为什么呢? 虽然我们的终端是在当前目录,而且当前目录中有我们要
执行
的文件,但是终端就是找不到它。需要我们指定文件的相对或绝对路径来告诉终端我们想运行的文件在哪里。在 Linux 中,点字符(.)表示工作目录,斜杠(/) 是 Linux 中的路径分隔符,我们用它来分离工作目录(.)与文件名。为什么我们需要 ./ ?因为我们的工作目录不包含在环境变量( $PATH
build/envsetup.
sh
简介
build/envsetup.
sh
命令
————envsetup.
sh
中的函数简介 source build/envsetup.
sh
执行
流程 build/envsetup.
sh
常用函数介绍 lunch流程 _lunch函数 gettop hmm mm mmm godir sgrep 看了好多篇关于build/envsetup.
sh
的介绍,记下的总结 build/envset...
用
sh
、./、source
执行
Sh
ell脚本到底有何不同?
要解答这个看似简单的问题,需要先复习一下Linux系统里“
命令
”这个词的含义。 Linux系统中的
命令
有两种:一是内置
命令
,是
Sh
ell与生俱来的一部分,比如最基础的cd、echo、kill等;二是外部
命令
,包含已编译的实用程序以及
Sh
ell脚本两种,它们两者又可以统称为可
执行
文件(executables)。我们平时常用的大多数看起来像“内置(自带)
命令
”的
命令
,其实都是/usr/...
系统维护与使用区
19,615
社区成员
74,562
社区内容
发帖
与我相关
我的任务
系统维护与使用区
系统使用、管理、维护问题。可以是Ubuntu, Fedora, Unix等等
复制链接
扫一扫
分享
社区描述
系统使用、管理、维护问题。可以是Ubuntu, Fedora, Unix等等
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章