当前位置: 技术问答>linux和unix
问两个shell细节问题,哪位大侠帮回答一下。
来源: 互联网 发布时间:2016-11-24
本文导语: 1、用点的方式运行脚本,如:./test 现在问题是如果运行的脚本写全路径好像系统找不到脚本位置,如当前在/home/目录中,使用./home/mydirect/test 系统提示找不到文件,难道非要我在脚本里切换当前工作目录?...
1、用点的方式运行脚本,如:./test
现在问题是如果运行的脚本写全路径好像系统找不到脚本位置,如当前在/home/目录中,使用./home/mydirect/test 系统提示找不到文件,难道非要我在脚本里切换当前工作目录???
2、如果一个字符串中有一个变量MYVAR。整个变量为"abcd$MYVARefgh",问题是这个样写shell不知道变量名在哪里结束吧?那要怎么写?写成 abcd"$MYVAR"efgh 这样么?shell怎么识别一个变量名得结束的?
现在问题是如果运行的脚本写全路径好像系统找不到脚本位置,如当前在/home/目录中,使用./home/mydirect/test 系统提示找不到文件,难道非要我在脚本里切换当前工作目录???
2、如果一个字符串中有一个变量MYVAR。整个变量为"abcd$MYVARefgh",问题是这个样写shell不知道变量名在哪里结束吧?那要怎么写?写成 abcd"$MYVAR"efgh 这样么?shell怎么识别一个变量名得结束的?
|
如当前在/home/目录中,使用./home/mydirect/test 系统提示找不到文件,难道非要我在脚本里切换当前工作目录???
---------------------
你的理解错误 ./test 这是执行当前目录下的test ./是当前目录的意思
而你说的全目录也就是绝对路径 一定是从/开始的 所以你的命令应该是
/home/mydirect/test
你说前在/home/目录中,使用./home/mydirect/test 那你其实执行的是/home/home/mydirect/test 知道吗?
所如如果现在要用相对路径的话 应该是./mydirect/test 因为你已经在/home下了
如果你在根目录/下执行./home/mydirect/test是没问题的 因为home就是在/下
2、如果一个字符串中有一个变量MYVAR。整个变量为"abcd$MYVARefgh",问题是这个样写shell不知道变量名在哪里结束吧?那要怎么写?写成 abcd"$MYVAR"efgh 这样么?shell怎么识别一个变量名得结束的?
-----------------------
其实你怀疑是毫无意义的 如果给你2个变量$MYVARefgh和$MYVAR 让你分辨 你如何分辨???
这种情况推荐你标准的写法 ${MYVAR} 即"abcd${MYVAR}efgh" 当然你自己的解决方法也是毫无问题的
---------------------
你的理解错误 ./test 这是执行当前目录下的test ./是当前目录的意思
而你说的全目录也就是绝对路径 一定是从/开始的 所以你的命令应该是
/home/mydirect/test
你说前在/home/目录中,使用./home/mydirect/test 那你其实执行的是/home/home/mydirect/test 知道吗?
所如如果现在要用相对路径的话 应该是./mydirect/test 因为你已经在/home下了
如果你在根目录/下执行./home/mydirect/test是没问题的 因为home就是在/下
2、如果一个字符串中有一个变量MYVAR。整个变量为"abcd$MYVARefgh",问题是这个样写shell不知道变量名在哪里结束吧?那要怎么写?写成 abcd"$MYVAR"efgh 这样么?shell怎么识别一个变量名得结束的?
-----------------------
其实你怀疑是毫无意义的 如果给你2个变量$MYVARefgh和$MYVAR 让你分辨 你如何分辨???
这种情况推荐你标准的写法 ${MYVAR} 即"abcd${MYVAR}efgh" 当然你自己的解决方法也是毫无问题的
|
1 .表示当前目录 ./表示当前目录下的文件
2 abcd${MYVAR}efgh
2 abcd${MYVAR}efgh
|
结贴吧
|
这个答案已经写得很详细了,我也不用写了,哈哈