将命令分配给变量的正确方法是什么?又名我应该如何使用引号逗号以及如何将其分配给变量,以便命令是最新的?例如
我在
home/desktop
。
我分配变量
b=`pwd`
echo "$b" // home/desktop
但是当我更改目录时
cd games
pwd // home/desktop/games
echo "$b" // home/desktop
不更新。我也想做一些类似的事情
g="-l"
ls $g
可能吗?
变量永远不会自动更新,您必须重新分配它们,即
b=`pwd`
echo "$b" // home/desktop
cd games
pwd // home/desktop/games
b=`pwd`
echo "$b" // home/desktop/games
至于你的第二个问题,我认为这只能使用
eval
:
g=" -la"
eval "ls"$g
对此要非常小心 编写可能危及安全性的东西非常容易,实际上大多数人(包括我自己!)都会强烈建议您永远不要使用
eval
,除非所有其他方法都失败了。
考虑上面的代码仅用于演示目的,在任何情况下都不能在生产系统中使用。
我认为您混淆了分配变量和别名。 分配变量意味着将命令的结果存储在变量中 这个命令的作用是什么
b=`pwd`
正在运行
pwd
并将答案存储在变量 b 中。
别名意味着给某些命令起一个不同的名称。所以运行
alias b pwd
会使得每当你运行 b 时,你实际上都会运行 pwd
b
仅在运行第一个命令时设置(将 pwd
的输出分配给 b
,它不会将这些项目链接在一起(以便在每次调用时设置 b)。有多种方法可以做到(在您的计算机上执行 man bash
)(例如,shell 变量 $PWD
包含此信息。
对于你的第二个问题,是的,你可以这样做,但一个很好的方法是使用
alias
。因此,alias ll='ls -l'
会在您的系统上创建一个命令,当您键入 ls -l
时,该命令将运行
ll