在 zsh 中打印文件
Print a file in zsh
我正在写我的 .zshrc。我希望我的提示显示存储在
/sys/class/power_supply/BAT0/capacity
我编写了一个函数,它将从文件中获取值并更改数字的颜色(如果大于 50 则为绿色,如果大于 20 则为橙色,否则为红色。
问题是我得到这个:
/home/user/.zshrc:5: parse error: condition expected: $getPower
我的 zshrc 为 $getPower 函数显示了这个
3 function getPower ()
4 {
5 cat /sys/class/power_supply/BAT0/capacity
6 }
7 function batteryLeft ()
8 {
9 if [[ getPower > 50 ]]; then
10 echo "Phrase"
11 fi
12}
在 ZSH Documentation 上,前 2 个代码示例有 2 种不同的函数声明方式,一种带有 function
关键字,另一种不带。不确定是什么问题。
值得注意的是,这段代码中没有任何内容是特定于 zsh 的——下面使用的所有扩展都存在于 ksh93 和 bash 中。
getPower() { cat /sys/class/power_supply/BAT0/capacity; }
batteryLeft() {
if (( $(getPower) > 50 )); then
echo "Phrase"
fi
}
function
关键字使您的代码与基线-POSIX shell 不兼容,同时与兼容的语法相比没有任何优势。作为一种良好做法,请避免使用它。
- 为了运行你的函数,从而对其输出进行操作,你需要一个命令替换,比如
$()
.
- 要运行进行数字比较而不是字符串比较,您需要使用
(( ))
代替[[ ]]
,或使用 -gt
代替 >
。 (这个 是 与基线 POSIX 不兼容——你需要使用 [ "$(getPower)" -gt 50 ]
来与其他 shell 一起工作——但也有补偿优势。
我正在写我的 .zshrc。我希望我的提示显示存储在
/sys/class/power_supply/BAT0/capacity
我编写了一个函数,它将从文件中获取值并更改数字的颜色(如果大于 50 则为绿色,如果大于 20 则为橙色,否则为红色。
问题是我得到这个:
/home/user/.zshrc:5: parse error: condition expected: $getPower
我的 zshrc 为 $getPower 函数显示了这个
3 function getPower ()
4 {
5 cat /sys/class/power_supply/BAT0/capacity
6 }
7 function batteryLeft ()
8 {
9 if [[ getPower > 50 ]]; then
10 echo "Phrase"
11 fi
12}
在 ZSH Documentation 上,前 2 个代码示例有 2 种不同的函数声明方式,一种带有 function
关键字,另一种不带。不确定是什么问题。
值得注意的是,这段代码中没有任何内容是特定于 zsh 的——下面使用的所有扩展都存在于 ksh93 和 bash 中。
getPower() { cat /sys/class/power_supply/BAT0/capacity; }
batteryLeft() {
if (( $(getPower) > 50 )); then
echo "Phrase"
fi
}
function
关键字使您的代码与基线-POSIX shell 不兼容,同时与兼容的语法相比没有任何优势。作为一种良好做法,请避免使用它。- 为了运行你的函数,从而对其输出进行操作,你需要一个命令替换,比如
$()
. - 要运行进行数字比较而不是字符串比较,您需要使用
(( ))
代替[[ ]]
,或使用-gt
代替>
。 (这个 是 与基线 POSIX 不兼容——你需要使用[ "$(getPower)" -gt 50 ]
来与其他 shell 一起工作——但也有补偿优势。