> ps -ef | grep cron
root 1052 1 0 04:35 ? 00:00:00 cron
test 4071 4053 0 10:15 pts/0 00:00:00 grep --color=auto cron
> ps -ef | grep cr[o]n
root 1052 1 0 04:35 ? 00:00:00 cron
为什么当搜索词等效时,这两个命令会返回不同的结果?
答案 0 :(得分:3)
因为在第二种情况下实际运行的进程是(在应用grep过滤器后你无法看到的第二种情况):
root 1052 1 0 04:35 ? 00:00:00 cron
test 4071 4053 0 10:15 pts/0 00:00:00 grep --color=auto cr[o]n
cr[o]n
与cr[o]n
不匹配,因为[o]
指定了字符列表o
,而真正的字符串也包含[
和{{1}围绕]
。
答案 1 :(得分:1)
命令
> ps -ef | grep cron
匹配字符串" cron"在命令中,给你
test 4071 4053 0 10:15 pts/0 00:00:00 grep --color=auto cron
然而,命令
> ps -ef | grep cr[o]n
与字符串" cr [o] n"不匹配在命令本身中,从结果中省略它。
答案 2 :(得分:-1)
不是全部,如果多次重复该命令,两个命令类的输出将不同。原因是输出取决于ps获取信息时正在执行的grep命令。 Bash shell只是按快速顺序启动这两个命令,但有时private ImageView partyIcon;
private ImageView dealIcon;
private ImageView deliveryIcon;
private TextView txtParty;
private TextView txtDeals;
private TextView txtDelivery;
boolean doubleBackToExitPressedOnce = false;
int backButtonCount = 0;
@Override
protected void onCreate(Bundle savedInstanceState) {
requestWindowFeature(Window.FEATURE_NO_TITLE);
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_after_login);
Utility.setStatusBarColor(this, R.color.splash_status_color);
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);
partyIcon = (ImageView)findViewById(R.id.party_Icon);
dealIcon = (ImageView)findViewById(R.id.deals_Icon);
deliveryIcon = (ImageView)findViewById(R.id.delivery_Icon);
partyIcon.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent(getApplication(), BookPartyActivity.class);
startActivity(intent);
}
});
dealIcon.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent(getApplication(), DealsActivity.class);
startActivity(intent);
}
});
deliveryIcon.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
LoginBean loginBean = new LoginBean();
Toast.makeText(getBaseContext(),"Auth"+loginBean.getUser_id(),Toast.LENGTH_LONG).show();
Intent intent = new Intent(getApplicationContext(),MyAuction.class);
startActivity(intent);
}
});
}
/*
public void onBackPressed()
{
if (doubleBackToExitPressedOnce)
{
Intent intent = new Intent(getApplicationContext(), MainActivity.class);
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(intent);
finish();
}
doubleBackToExitPressedOnce = true;
Toast.makeText(this, "you have logged in ,plz enjoy the party", Toast.LENGTH_LONG).show();
new Handler().postDelayed(new Runnable()
{
public void run()
{
doubleBackToExitPressedOnce = false;
}
}
, 2000L);
}*/
@Override
public void onBackPressed()
{
if(backButtonCount >= 1)
{
Intent intent = new Intent(Intent.ACTION_MAIN);
intent.addCategory(Intent.CATEGORY_HOME);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(intent);
}
else
{
Toast.makeText(this, "Press the back button once again to close the application.", Toast.LENGTH_SHORT).show();
backButtonCount++;
}
}
命令会在public void setUser_id(String user_id) {
this.user_id = user_id;
}
public String getUser_id() {
return user_id;
}
public void setFull_name(String full_name) {
this.full_name = full_name;
}
public String getFull_name() {
return full_name;
}
public void setDisplay_name(String display_name) {
this.display_name = display_name;
}
public String getDisplay_name() {
return display_name;
}
public void setUser_image(String user_image) {
this.user_image = user_image;
}
public String getUser_image() {
return user_image;
}
public void setGender(String gender) {
this.gender = gender;
}
public String getGender() {
return gender;
}
public void setAuthorization_key(String authorization_key) {
this.authorization_key = authorization_key;
}
public String getAuthorization_key() {
return authorization_key;
}
没有时间启动ps(1)
时获取信息。
两个正则表达式完全相同,因为bash(1)
与grep(1)
完全相同。
多次尝试启动cr[o]n
并查看有时会出现grep命令,有时不会出现。