我编写了一个非常小的脚本,其中包含一个别名并执行它但它没有执行命令 ts。谁能提供我的意见来解决这个问题。
#!/bin/tcsh
alias ts 'cd /path/goswami/;'
ts
你的脚本工作得很好。它会更改目录,但在执行脚本时您看不到它。执行脚本后,旧工作目录将再次生效。
如果您想确保确实如此,那么您可以尝试以下操作:
#!/bin/tcsh
alias ts 'cd /path/goswami/; echo `pwd`'
ts
它将/path/goswami
作为输出打印。
更新:但是,如果您想更改脚本“外部”的目录,则根本不要使用该脚本。只需定义您的别名并使用它而不是调用您的脚本。
我认为这个问题是关于执行脚本和采购脚本之间的区别。
如果您通过设置可执行权限来执行脚本,然后通过它的完整路径或相对路径调用它,或者如果它在您的 PATH 中,则仅通过名称调用它,那么将创建一个新的 shell 进程来解释脚本(确定 shell 类型通过脚本开头的晦涩#!/bin/xxx)。
如果您使用source关键字或 . 语法,即其中之一:
source test.sh
. test.sh
...然后文件将在当前的 shell中被读取和执行。
以下是我能想到的使用源代码而不是执行脚本的一些含义:
看起来您想要获取脚本而不是执行它。