bash shell $ HOME赋值和脚本执行

时间:2012-02-15 11:21:41

标签: macos bash shell unix execution

我刚开始学习Unix,到目前为止遇到了两个基本但难以解决的问题:

  • 当我将shell脚本中的HOME=''设置为指定目录时,当前目录似乎不再被识别。也就是说,'cd~ /'吐出消息:'没有这样的文件或目录'消息。虽然奇怪的是,如果在脚本中进行了别名分配,那么源调用似乎仍会激活它们。怎么样?

前:

$ more .profile
HOME="~/Documents/Basics/Unix/Unix_and_Perl_course"
cd $HOME
[...]
$ source .profile
-bash: cd: ~/Documents/Basics/Unix/Unix_and_Perl_course: No such file or directory
  • 当我通过nano('hello.sh')创建一个简单的shell脚本时,我似乎无法通过在终端中输入'hello.sh'来执行它。即使在我'chmod + x'文件后,此问题也无法解决。有什么问题?

前:

$ more hello.sh 
# my first Unix shell script
echo "Hello World"
$ hello.sh
bash: hello.sh: command not found

谢谢!

2 个答案:

答案 0 :(得分:2)

您也不想'重载'$ HOME,HOME的默认位置始终是您的主目录。如果你这样做,很多事情都会破裂。

至于hello.sh - 那是因为你没有'。'在你的$ PATH中。 (这是件好事)

尝试:

./hello.sh

如果说它无法执行

chmod 755 hello.sh
./hello.sh

答案 1 :(得分:1)

  1. 〜= $ HOME
  2. 。 (pwd)不在$ PATH