当前位置: 技术问答>linux和unix
Linux Shell 编程
来源: 互联网 发布时间:2016-08-26
本文导语: 照着书上,写了下面的程序。 第一步,打开vi,输入下面的程序 #! /bin/bash clear echo "" echo "1. Display a telephone number" echo "2. Add a new telephone number" echo "" echo "Enter your selection" 保存为 mymenu 文件 第二步,chmod...
照着书上,写了下面的程序。
第一步,打开vi,输入下面的程序
#! /bin/bash
clear
echo ""
echo "1. Display a telephone number"
echo "2. Add a new telephone number"
echo ""
echo "Enter your selection"
保存为 mymenu 文件
第二步,chmod 711 mymenu
第三步,执行的时候,运行mymenu,结果出现错误提示:bash: mymenu: command not found
书上也说,如果运行有问题,试着运行 ./mymenu (但是没有说为什么)
我运行了 ./mymenu ,结果正确。
我就想知道为什么?运行 mymenu 不行,./mymenu 就可以了呢?
谢谢!请高手赐教!!
^_^
第一步,打开vi,输入下面的程序
#! /bin/bash
clear
echo ""
echo "1. Display a telephone number"
echo "2. Add a new telephone number"
echo ""
echo "Enter your selection"
保存为 mymenu 文件
第二步,chmod 711 mymenu
第三步,执行的时候,运行mymenu,结果出现错误提示:bash: mymenu: command not found
书上也说,如果运行有问题,试着运行 ./mymenu (但是没有说为什么)
我运行了 ./mymenu ,结果正确。
我就想知道为什么?运行 mymenu 不行,./mymenu 就可以了呢?
谢谢!请高手赐教!!
^_^
|
呵呵,哎路径和环境变量的问题 用./mymenu你是用相对路径指定了要运行的程序,系统直接找到就执行了。
而 mymenu 系统会去环境变量中的指定路径去查找,而你的文件并没有在环境变量包含的路径中。所以找不到报错。
而 mymenu 系统会去环境变量中的指定路径去查找,而你的文件并没有在环境变量包含的路径中。所以找不到报错。
|
我就想知道为什么?运行 mymenu 不行,./mymenu 就可以了呢?
================================
./mymenu 表示运行当前目录下的 文件
mymenu 表示运行系统 PATH 目录下 的文件, 你的当前目录不属于系统目录,当然就不能执行了。
如果你
cp ./mymenu /bin/mymenu
那么你就可以直接用 mymenu 了,
或者 export PATH=$PATH:$PWD
这样你也可以直接用 mymenu
================================
./mymenu 表示运行当前目录下的 文件
mymenu 表示运行系统 PATH 目录下 的文件, 你的当前目录不属于系统目录,当然就不能执行了。
如果你
cp ./mymenu /bin/mymenu
那么你就可以直接用 mymenu 了,
或者 export PATH=$PATH:$PWD
这样你也可以直接用 mymenu
|
你敲 ls -al
会列出 . .. 以及其他的一些目录或者文件
其中这个.就是本目录而 .. 就是上级目录
因此你直接运行 mymenu 会报错说找不到文件 而运行./mymenu 却可以
你可以修改你的.profile文件在环境变量PATH中添加上文件路径,这样你所添加的文件路径下的可执行程序就都不用加全路径而在任意路径下执行了
方式就是编辑 .profile
添加 export PATH=$PATH:路径名
保存后 执行. .profile使之生效
.profile中的环境变量以及一些命令会在你每次登陆的时候进行加载执行
有的是.bash_profile
会列出 . .. 以及其他的一些目录或者文件
其中这个.就是本目录而 .. 就是上级目录
因此你直接运行 mymenu 会报错说找不到文件 而运行./mymenu 却可以
你可以修改你的.profile文件在环境变量PATH中添加上文件路径,这样你所添加的文件路径下的可执行程序就都不用加全路径而在任意路径下执行了
方式就是编辑 .profile
添加 export PATH=$PATH:路径名
保存后 执行. .profile使之生效
.profile中的环境变量以及一些命令会在你每次登陆的时候进行加载执行
有的是.bash_profile