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